{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from metadsl import *\n",
    "from metadsl_core import *\n",
    "from metadsl_llvm.pure import *\n",
    "\n",
    "import metadsl_visualize\n",
    "\n",
    "\n",
    "# Disable fixed point expansion temporarily\n",
    "run_post_rules(False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "def my_dec(fn):\n",
    "    return fn, inspect.currentframe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "def fn():\n",
    "    \n",
    "    def inner():\n",
    "        return my_dec(lambda: None)\n",
    "    return inner()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "f, frame = fn()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function __main__.fn.<locals>.inner.<locals>.<lambda>()>"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "frame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'<lambda>'"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "c.co_name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "ClosureVars(nonlocals={}, globals={}, builtins={}, unbound=set())"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inspect.getclosurevars(inner)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "one = Integer.from_int(1)\n",
    "zero = Integer.from_int(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mSignature:\u001b[0m       \u001b[0mFunctionOne\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'typing.Callable[[T], U]'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;34m'FunctionOne[T, U]'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
       "\u001b[0;31mCall signature:\u001b[0m  \u001b[0mFunctionOne\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;34m'U'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
       "\u001b[0;31mType:\u001b[0m            BoundInfer\n",
       "\u001b[0;31mString form:\u001b[0m     FunctionOne.from_fn\n",
       "\u001b[0;31mFile:\u001b[0m            /usr/local/miniconda3/envs/metadsl/lib/python3.7/site-packages/metadsl_core/function.py\n",
       "\u001b[0;31mSource:\u001b[0m         \n",
       "    \u001b[0;34m@\u001b[0m\u001b[0mexpression\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0;34m@\u001b[0m\u001b[0mclassmethod\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m    \u001b[0;32mdef\u001b[0m \u001b[0mfrom_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtyping\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mCallable\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mU\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mFunctionOne\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mU\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\n",
       "\u001b[0;34m\u001b[0m        \u001b[0;32mreturn\u001b[0m \u001b[0mcls\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcreate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mAbstraction\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
       "\u001b[0;31mClass docstring:\u001b[0m BoundInfer(*args, **kwds)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "FunctionOne.from_fn??"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/json": {
       "nodes": {
        "-1103485620982286201": [
         "6261526295775775673",
         {
          "args": [
           "-3290865020609809785",
           "-7328125070462657134"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-1204073473483278343": [
         "-1204073473483278343",
         {
          "args": [
           "7412632955925803315"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "-1237837872188061842": [
         "4626752930784986669",
         {
          "args": [
           "382668138798061573",
           "6909541235474180300"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-1256443561400883925": [
         "-1256443561400883925",
         {
          "args": [
           "8491250713645872490"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-1443395813807034717": [
         "7220818836429339286",
         {
          "args": [
           "601616740275993098",
           "-3290865020609809785",
           "-3583216241042002267",
           "6325146951033901350"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-1500747919639408199": [
         "-1500747919639408199",
         {
          "args": [
           "7412632542522496115"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "-1596029074047881709": [
         "2193892090084648025",
         {
          "args": [
           "1963673822784011260",
           "-9146619245350571144"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-1714617617501617066": [
         "1524023298192473829",
         {
          "args": [
           "548738157770213529"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-1961898576601162173": [
         "9035282438128528067",
         {
          "args": [
           "382668138798061573",
           "5531380902039500107"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-2010475523332315978": [
         "-2010475523332315978",
         {
          "args": [
           "-808026620668746558",
           "6325146951033901350"
          ],
          "function": "Integer.__sub__"
         }
        ],
        "-2109586072064441879": [
         "-5004895946799091351",
         {
          "args": [
           "-2851711366118638850",
           "-1204073473483278343"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-2218404699472089453": [
         "-2218404699472089453",
         {
          "args": [
           "-732121295841588793"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-2262351587145021755": [
         "7220818836429339286",
         {
          "args": [
           "-4592041343014302207",
           "-3290865020609809785",
           "-3583216241042002267",
           "6325146951033901350"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-2356501649725275347": [
         "-2852784026524406801",
         {
          "args": [
           "-7899468535260351664",
           "7827400091205757843"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-2416744201801222842": [
         "-2416744201801222842",
         {
          "repr": "'fib_more'",
          "type": "str"
         }
        ],
        "-2525115720496718177": [
         "5623947456069685973",
         {
          "args": [
           "-2416744201801222842",
           "2169120372976143626"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-2616231968178105026": [
         "-2616231968178105026",
         {
          "args": [
           "1503188694666229145"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "-2851711366118638850": [
         "-2851711366118638850",
         {
          "args": [
           "-732121308697655693"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-2852784026524406801": [
         "-2852784026524406801",
         {
          "args": [
           "-3551493808640946932",
           "5479575004185676687",
           "6538013570818597808",
           "7827400091205757843"
          ],
          "function": "FunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-2974947399862450098": [
         "8972369975130776289",
         {
          "args": [
           "-808026620668746558",
           "1687986881092766184"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-3092924321317758663": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "2745596852532900277"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-3126007499610303067": [
         "6856276731336713150",
         {
          "args": [
           "-942883308524420890",
           "-7942013740372488676"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "-3221772017662409983": [
         "-3221772017662409983",
         {
          "repr": "<function fib_more at 0x10cf23b70>",
          "type": "function"
         }
        ],
        "-3276991036306946112": [
         "-9012227333621399175",
         {
          "args": [
           "3686831515708517186",
           "6863324329334168633"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-3290865020609809785": [
         "-3290865020609809785",
         {
          "args": [
           "8491251180266108690"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-3330010245231333408": [
         "-5004895946799091351",
         {
          "args": [
           "-2851711366118638850",
           "8189062730614172955"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-3346905352135425808": [
         "-3346905352135425808",
         {
          "args": [
           "5533983751828955784",
           "-2852784026524406801",
           "6479971903414758433"
          ],
          "function": "Boolean.if_"
         }
        ],
        "-3551493808640946932": [
         "-3551493808640946932",
         {
          "args": [
           "-2416744201801222842",
           "3686831515708517186"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-3583216241042002267": [
         "-3583216241042002267",
         {
          "args": [
           "6001312171388989075"
          ],
          "function": "Integer.from_int"
         }
        ],
        "-3676002535650134703": [
         "-3676002535650134703",
         {
          "args": [
           "5764714247852502735",
           "1963673822784011260"
          ],
          "function": "Integer.__add__"
         }
        ],
        "-3684866814833995140": [
         "-5676828982477546559",
         {
          "args": [
           "-1256443561400883925",
           "-2109586072064441879"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-3742044759655754861": [
         "9035282438128528067",
         {
          "args": [
           "382668138798061573",
           "1600314105688255389"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-3749917521659886773": [
         "7108997176786111947",
         {
          "args": [
           "5410484726792215981"
          ],
          "function": "Pair.left",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-3794121229660499577": [
         "-5004895946799091351",
         {
          "args": [
           "-2851711366118638850",
           "2178573689695233995"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-3914589061855157043": [
         "4615692901985549771",
         {
          "args": [
           "-2416744201801222842",
           "5414232390638848622"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-39358014160072841": [
         "8972369975130776289",
         {
          "args": [
           "-808026620668746558",
           "8187349443881251148"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-3938349888668918862": [
         "4615692901985549771",
         {
          "args": [
           "-2416744201801222842",
           "-7047487661644010508"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-3978392646477205804": [
         "6856276731336713150",
         {
          "args": [
           "3715864845822236104",
           "-6092409311600830619"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "-4092086257083142080": [
         "4626752930784986669",
         {
          "args": [
           "382668138798061573",
           "-939301301305331488"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-4143833434479094413": [
         "6261526295775775673",
         {
          "args": [
           "-3290865020609809785",
           "-1443395813807034717"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-4207933847189016290": [
         "6261526295775775673",
         {
          "args": [
           "-3290865020609809785",
           "3679952967203657599"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-4304598581914280856": [
         "-6088525062024978323",
         {
          "args": [
           "-3276991036306946112"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "-45428351763996943": [
         "6261526295775775673",
         {
          "args": [
           "-3290865020609809785",
           "7220818836429339286"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-4592041343014302207": [
         "1524023298192473829",
         {
          "args": [
           "-3742044759655754861"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-4680000350632046801": [
         "9035282438128528067",
         {
          "args": [
           "382668138798061573",
           "271414626174357713"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-4705489241148282369": [
         "-4705489241148282369",
         {
          "args": [
           "-808026620668746558",
           "6325146951033901350"
          ],
          "function": "Integer.eq"
         }
        ],
        "-4747665114687989666": [
         "6099022499168263336",
         {
          "args": [
           "555335659624800737",
           "7814178186524355439",
           "2385595039180881329"
          ],
          "function": "Boolean.if_"
         }
        ],
        "-4851325084541919240": [
         "4626752930784986669",
         {
          "args": [
           "382668138798061573",
           "3060273032549201351"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-5004895946799091351": [
         "-5004895946799091351",
         {
          "args": [
           "7412633363422854115"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "-5019137516813892370": [
         "-9012227333621399175",
         {
          "args": [
           "3686831515708517186",
           "7463117423714826542"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-5246748211749191394": [
         "5623947456069685973",
         {
          "args": [
           "-2416744201801222842",
           "3281284362819432988"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-5332641643694669743": [
         "6856276731336713150",
         {
          "args": [
           "6368059999428657147",
           "-6880133917432089086"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "-5336534128346101251": [
         "4615692901985549771",
         {
          "args": [
           "-2416744201801222842",
           "2419193387387549503"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-5356085944341333606": [
         "1524023298192473829",
         {
          "args": [
           "-4680000350632046801"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-5676828982477546559": [
         "-5676828982477546559",
         {
          "args": [
           "7412632563887209515"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "-5713417871866583945": [
         "7220818836429339286",
         {
          "args": [
           "-7281935149975180479",
           "-3290865020609809785",
           "-3583216241042002267",
           "6325146951033901350"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-5746334004973404524": [
         "4626752930784986669",
         {
          "args": [
           "382668138798061573",
           "-5246748211749191394"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-6088525062024978323": [
         "-6088525062024978323",
         {
          "args": [
           "-9012227333621399175"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "-6092409311600830619": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "-8568649978119546315"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-6332609585604097430": [
         "6856276731336713150",
         {
          "args": [
           "7108997176786111947",
           "-3092924321317758663"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "-6404377335771370736": [
         "2193892090084648025",
         {
          "args": [
           "1963673822784011260",
           "-4747665114687989666"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-6521625635168606160": [
         "7108997176786111947",
         {
          "args": [
           "4620350306840254974"
          ],
          "function": "Pair.left",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-6838072510089444641": [
         "9035282438128528067",
         {
          "args": [
           "382668138798061573",
           "8404341556129260478"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-6880133917432089086": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "-1103485620982286201"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-6972523730076414042": [
         "-6972523730076414042",
         {
          "args": [
           "-3551493808640946932"
          ],
          "function": "FunctionThree.abstraction",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-7039190525139394778": [
         "-7039190525139394778",
         {
          "args": [
           "7536267128241918466",
           "6538013570818597808"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-7047487661644010508": [
         "-2616231968178105026",
         {
          "args": [
           "1490821829957485115"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "-7084901351516393663": [
         "8972369975130776289",
         {
          "args": [
           "-808026620668746558",
           "-1500747919639408199"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-7281935149975180479": [
         "1524023298192473829",
         {
          "args": [
           "8516094059202496079"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-7294472008854822226": [
         "6856276731336713150",
         {
          "args": [
           "7108997176786111947",
           "190925817868034716"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "-732121295841588793": [
         "-732121295841588793",
         {
          "repr": "Variable(4693604392)",
          "type": "Variable"
         }
        ],
        "-732121298250206918": [
         "-732121298250206918",
         {
          "repr": "Variable(4693672792)",
          "type": "Variable"
         }
        ],
        "-732121301822539418": [
         "-732121301822539418",
         {
          "repr": "Variable(4693627288)",
          "type": "Variable"
         }
        ],
        "-732121308697655693": [
         "-732121308697655693",
         {
          "repr": "Variable(4693796456)",
          "type": "Variable"
         }
        ],
        "-732121319866066118": [
         "-732121319866066118",
         {
          "repr": "Variable(4693893976)",
          "type": "Variable"
         }
        ],
        "-7328125070462657134": [
         "7220818836429339286",
         {
          "args": [
           "-8308460306953947084",
           "-3290865020609809785",
           "-3583216241042002267",
           "6325146951033901350"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-7475059708508343358": [
         "-3346905352135425808",
         {
          "args": [
           "5533983751828955784",
           "-8691410319072797069",
           "6479971903414758433"
          ],
          "function": "Boolean.if_"
         }
        ],
        "-7674324248979668855": [
         "-5676828982477546559",
         {
          "args": [
           "-1256443561400883925",
           "-3794121229660499577"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-770073920009476210": [
         "-3346905352135425808",
         {
          "args": [
           "5533983751828955784",
           "-2356501649725275347",
           "6479971903414758433"
          ],
          "function": "Boolean.if_"
         }
        ],
        "-7766744624820697011": [
         "-9012227333621399175",
         {
          "args": [
           "3686831515708517186",
           "6338018295508169414"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-7899468535260351664": [
         "-7039190525139394778",
         {
          "args": [
           "4318845609147373794",
           "6538013570818597808"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-7915888723707701402": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "6261526295775775673"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-7942013740372488676": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "4210816321380885404"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-808026620668746558": [
         "-808026620668746558",
         {
          "args": [
           "8491250738698748565"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-8308460306953947084": [
         "1524023298192473829",
         {
          "args": [
           "-1961898576601162173"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-8568649978119546315": [
         "6261526295775775673",
         {
          "args": [
           "-3290865020609809785",
           "-2262351587145021755"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-8691410319072797069": [
         "-2852784026524406801",
         {
          "args": [
           "-7039190525139394778",
           "7827400091205757843"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-8723637583106453615": [
         "6856276731336713150",
         {
          "args": [
           "-3749917521659886773",
           "-7942013740372488676"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "-8736799035775674707": [
         "6856276731336713150",
         {
          "args": [
           "7108997176786111947",
           "-7942013740372488676"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "-8869922616258736873": [
         "-8869922616258736873",
         {
          "args": [
           "5273669542542420348"
          ],
          "function": "FunctionThree.abstraction",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-9012227333621399175": [
         "-9012227333621399175",
         {
          "args": [
           "7412632606607976115"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "-9146619245350571144": [
         "6099022499168263336",
         {
          "args": [
           "555335659624800737",
           "6869091480187158002",
           "2385595039180881329"
          ],
          "function": "Boolean.if_"
         }
        ],
        "-933147840307797687": [
         "-933147840307797687",
         {
          "args": [
           "813800637616694484",
           "1963673822784011260"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-939301301305331488": [
         "5623947456069685973",
         {
          "args": [
           "-2416744201801222842",
           "-4304598581914280856"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-942883308524420890": [
         "7108997176786111947",
         {
          "args": [
           "-1237837872188061842"
          ],
          "function": "Pair.left",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "1010594837940157392": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "-45428351763996943"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "1109744608222471603": [
         "-1500747919639408199",
         {
          "args": [
           "5764714247852502735",
           "-1596029074047881709"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "1151106901067544956": [
         "1503188694666229145",
         {
          "args": [
           "-2218404699472089453",
           "3408071583970995350"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "1153440509156381989": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "-4143833434479094413"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "1158225584276799855": [
         "813800637616694484",
         {
          "args": [
           "-2218404699472089453",
           "-2010475523332315978"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "1290740132143854684": [
         "6856276731336713150",
         {
          "args": [
           "7108997176786111947",
           "7503727616651843303"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "1413951941586074189": [
         "6856276731336713150",
         {
          "args": [
           "-6521625635168606160",
           "-7942013740372488676"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "1490821829957485115": [
         "1503188694666229145",
         {
          "args": [
           "-2218404699472089453",
           "-7084901351516393663"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "1503188694666229145": [
         "1503188694666229145",
         {
          "args": [
           "7412632538885212115"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "1524023298192473829": [
         "1524023298192473829",
         {
          "args": [
           "9035282438128528067"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "1600314105688255389": [
         "4615692901985549771",
         {
          "args": [
           "-2416744201801222842",
           "4290183482776733535"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "1604752399855285098": [
         "1503188694666229145",
         {
          "args": [
           "-2218404699472089453",
           "-2974947399862450098"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "1687986881092766184": [
         "-1500747919639408199",
         {
          "args": [
           "5764714247852502735",
           "962989529247964034"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "1805265982070591545": [
         "6856276731336713150",
         {
          "args": [
           "7108997176786111947",
           "1153440509156381989"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "190925817868034716": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "-4207933847189016290"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "1963673822784011260": [
         "1963673822784011260",
         {
          "args": [
           "-732121298250206918"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "2169120372976143626": [
         "-6088525062024978323",
         {
          "args": [
           "3546234555524329108"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "2178573689695233995": [
         "-1204073473483278343",
         {
          "args": [
           "6538013570818597808",
           "-3346905352135425808"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "2193892090084648025": [
         "2193892090084648025",
         {
          "args": [
           "7412633025588452115"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "2385595039180881329": [
         "2385595039180881329",
         {
          "args": [
           "-4705489241148282369",
           "1963673822784011260",
           "5764714247852502735"
          ],
          "function": "Boolean.if_"
         }
        ],
        "2419193387387549503": [
         "-2616231968178105026",
         {
          "args": [
           "1151106901067544956"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "271414626174357713": [
         "4615692901985549771",
         {
          "args": [
           "-2416744201801222842",
           "7474717735547262305"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "2745596852532900277": [
         "6261526295775775673",
         {
          "args": [
           "-3290865020609809785",
           "6825170533652453955"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "2907869782943534867": [
         "8972369975130776289",
         {
          "args": [
           "-808026620668746558",
           "1109744608222471603"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "3060273032549201351": [
         "5623947456069685973",
         {
          "args": [
           "-2416744201801222842",
           "8081585524676436271"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "3281284362819432988": [
         "-6088525062024978323",
         {
          "args": [
           "8561017931360334080"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "3408071583970995350": [
         "8972369975130776289",
         {
          "args": [
           "-808026620668746558",
           "8967542854824113341"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "3542320105307783559": [
         "4626752930784986669",
         {
          "args": [
           "382668138798061573",
           "9806125132565529"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "3546234555524329108": [
         "-9012227333621399175",
         {
          "args": [
           "3686831515708517186",
           "-5676828982477546559"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "361444152944097461": [
         "6856276731336713150",
         {
          "args": [
           "3715864845822236104",
           "-6880133917432089086"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "3679952967203657599": [
         "7220818836429339286",
         {
          "args": [
           "-1714617617501617066",
           "-3290865020609809785",
           "-3583216241042002267",
           "6325146951033901350"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "3686831515708517186": [
         "3686831515708517186",
         {
          "args": [
           "-732121319866066118"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "3701848267033676582": [
         "3701848267033676582",
         {
          "args": [
           "-1256443561400883925",
           "6325146951033901350"
          ],
          "function": "Integer.eq"
         }
        ],
        "3715864845822236104": [
         "7108997176786111947",
         {
          "args": [
           "3542320105307783559"
          ],
          "function": "Pair.left",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "382668138798061573": [
         "382668138798061573",
         {
          "args": [
           "7184931157588987335"
          ],
          "function": "Module.create"
         }
        ],
        "3918164425348840515": [
         "3918164425348840515",
         {
          "args": [
           "5273669542542420348",
           "-2010475523332315978",
           "1963673822784011260",
           "-3676002535650134703"
          ],
          "function": "FunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "4210816321380885404": [
         "6261526295775775673",
         {
          "args": [
           "-3290865020609809785",
           "4271036976135164429"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "4271036976135164429": [
         "7220818836429339286",
         {
          "args": [
           "-5356085944341333606",
           "-3290865020609809785",
           "-3583216241042002267",
           "6325146951033901350"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "4290183482776733535": [
         "-2616231968178105026",
         {
          "args": [
           "880491815589452508"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "4318845609147373794": [
         "7536267128241918466",
         {
          "args": [
           "3686831515708517186",
           "5479575004185676687"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "4615692901985549771": [
         "4615692901985549771",
         {
          "args": [
           "7412625438300630115"
          ],
          "function": "FunctionThree.from_fn_recursive"
         }
        ],
        "4620350306840254974": [
         "4626752930784986669",
         {
          "args": [
           "382668138798061573",
           "-2525115720496718177"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "4626752930784986669": [
         "4626752930784986669",
         {
          "args": [
           "382668138798061573",
           "5623947456069685973"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "4725913326772741315": [
         "4725913326772741315",
         {
          "repr": "'fib'",
          "type": "str"
         }
        ],
        "4956368705773594650": [
         "6856276731336713150",
         {
          "args": [
           "3715864845822236104",
           "-7942013740372488676"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "504943505945954141": [
         "6856276731336713150",
         {
          "args": [
           "8403424637920052158",
           "-6880133917432089086"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "5265539021190779987": [
         "-9012227333621399175",
         {
          "args": [
           "3686831515708517186",
           "-7674324248979668855"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "5273669542542420348": [
         "5273669542542420348",
         {
          "args": [
           "-2416744201801222842",
           "-2218404699472089453"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "5337637645072033610": [
         "-6088525062024978323",
         {
          "args": [
           "5265539021190779987"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "5410484726792215981": [
         "4626752930784986669",
         {
          "args": [
           "382668138798061573",
           "8971793020356699732"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "5414232390638848622": [
         "-2616231968178105026",
         {
          "args": [
           "90871822513410697"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "5479575004185676687": [
         "5479575004185676687",
         {
          "args": [
           "-1256443561400883925",
           "6325146951033901350"
          ],
          "function": "Integer.__sub__"
         }
        ],
        "548738157770213529": [
         "9035282438128528067",
         {
          "args": [
           "382668138798061573",
           "-5336534128346101251"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "5531380902039500107": [
         "4615692901985549771",
         {
          "args": [
           "-2416744201801222842",
           "6423546443713427284"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "5533983751828955784": [
         "5533983751828955784",
         {
          "args": [
           "-1256443561400883925",
           "6325146951033901350"
          ],
          "function": "Integer.__gt__"
         }
        ],
        "555335659624800737": [
         "555335659624800737",
         {
          "args": [
           "-808026620668746558",
           "6325146951033901350"
          ],
          "function": "Integer.__gt__"
         }
        ],
        "5623947456069685973": [
         "5623947456069685973",
         {
          "args": [
           "-3221772017662409983"
          ],
          "function": "FunctionThree.from_fn_recursive"
         }
        ],
        "5654953204440361295": [
         "6856276731336713150",
         {
          "args": [
           "7108997176786111947",
           "-7915888723707701402"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "5764714247852502735": [
         "5764714247852502735",
         {
          "args": [
           "-732121301822539418"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "5993236546128606356": [
         "-5004895946799091351",
         {
          "args": [
           "-2851711366118638850",
           "6528268183171962768"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "6001312171388989075": [
         "6001312171388989075",
         {
          "repr": "0",
          "type": "int"
         }
        ],
        "6001312171390071600": [
         "6001312171390071600",
         {
          "repr": "1",
          "type": "int"
         }
        ],
        "6001600019183705625": [
         "6001600019183705625",
         {
          "repr": "<function fib at 0x10cf23bf8>",
          "type": "function"
         }
        ],
        "601616740275993098": [
         "1524023298192473829",
         {
          "args": [
           "-6838072510089444641"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "6062302019901458689": [
         "-6088525062024978323",
         {
          "args": [
           "-7766744624820697011"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "6099022499168263336": [
         "6099022499168263336",
         {
          "args": [
           "555335659624800737",
           "3918164425348840515",
           "2385595039180881329"
          ],
          "function": "Boolean.if_"
         }
        ],
        "6116642849638404418": [
         "-933147840307797687",
         {
          "args": [
           "1158225584276799855",
           "1963673822784011260"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "6261526295775775673": [
         "6261526295775775673",
         {
          "args": [
           "7412632649493286515"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "6325146951033901350": [
         "6325146951033901350",
         {
          "args": [
           "6001312171390071600"
          ],
          "function": "Integer.from_int"
         }
        ],
        "6338018295508169414": [
         "-5676828982477546559",
         {
          "args": [
           "-1256443561400883925",
           "-5004895946799091351"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "6368059999428657147": [
         "7108997176786111947",
         {
          "args": [
           "-4092086257083142080"
          ],
          "function": "Pair.left",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "6423546443713427284": [
         "-2616231968178105026",
         {
          "args": [
           "6743160913950424153"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "6479971903414758433": [
         "6479971903414758433",
         {
          "args": [
           "3701848267033676582",
           "6538013570818597808",
           "-2851711366118638850"
          ],
          "function": "Boolean.if_"
         }
        ],
        "6528268183171962768": [
         "-1204073473483278343",
         {
          "args": [
           "6538013570818597808",
           "-770073920009476210"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "6538013570818597808": [
         "6538013570818597808",
         {
          "args": [
           "8491250716916180515"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "6568632049537082536": [
         "1524023298192473829",
         {
          "args": [
           "6926423155304698820"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "6743160913950424153": [
         "1503188694666229145",
         {
          "args": [
           "-2218404699472089453",
           "2907869782943534867"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "6825170533652453955": [
         "7220818836429339286",
         {
          "args": [
           "6568632049537082536",
           "-3290865020609809785",
           "-3583216241042002267",
           "6325146951033901350"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "6856276731336713150": [
         "6856276731336713150",
         {
          "args": [
           "7108997176786111947",
           "8722543692205951913"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "6863324329334168633": [
         "-5676828982477546559",
         {
          "args": [
           "-1256443561400883925",
           "5993236546128606356"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "6869091480187158002": [
         "3918164425348840515",
         {
          "args": [
           "6116642849638404418",
           "-3676002535650134703"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "6909541235474180300": [
         "5623947456069685973",
         {
          "args": [
           "-2416744201801222842",
           "6062302019901458689"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "6926423155304698820": [
         "9035282438128528067",
         {
          "args": [
           "382668138798061573",
           "-3914589061855157043"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "6963002688607303346": [
         "6856276731336713150",
         {
          "args": [
           "7108997176786111947",
           "1010594837940157392"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "7108997176786111947": [
         "7108997176786111947",
         {
          "args": [
           "4626752930784986669"
          ],
          "function": "Pair.left",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "7118239093530523877": [
         "6261526295775775673",
         {
          "args": [
           "-3290865020609809785",
           "-5713417871866583945"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "7184931157588987335": [
         "7184931157588987335",
         {
          "repr": "'Main'",
          "type": "str"
         }
        ],
        "7220818836429339286": [
         "7220818836429339286",
         {
          "args": [
           "1524023298192473829",
           "-3290865020609809785",
           "-3583216241042002267",
           "6325146951033901350"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "7412625438300630115": [
         "7412625438300630115",
         {
          "repr": "FunctionReplaceTyping(fn=<function fib_more at 0x10cf23b70>, typevars={~T: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7b70>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412632538885212115": [
         "7412632538885212115",
         {
          "repr": "FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner at 0x10cf420d0>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7d90>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412632542522496115": [
         "7412632542522496115",
         {
          "repr": "FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x117bf7d90>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf79d8>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412632563887209515": [
         "7412632563887209515",
         {
          "repr": "FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x117c566a8>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117c567b8>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412632606607976115": [
         "7412632606607976115",
         {
          "repr": "FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner at 0x117bf7620>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf79d8>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412632608954890315": [
         "7412632608954890315",
         {
          "repr": "FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x117bf7730>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7ea0>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412632649493286515": [
         "7412632649493286515",
         {
          "repr": "FunctionReplaceTyping(fn=<function fib at 0x10cf23bf8>, typevars={~T: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf77b8>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412632955925803315": [
         "7412632955925803315",
         {
          "repr": "FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x117c567b8>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117c568c8>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412633025588452115": [
         "7412633025588452115",
         {
          "repr": "FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x117bf7ea0>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7620>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7412633363422854115": [
         "7412633363422854115",
         {
          "repr": "FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x117bf7a60>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7510>)",
          "type": "FunctionReplaceTyping"
         }
        ],
        "7463117423714826542": [
         "-5676828982477546559",
         {
          "args": [
           "-1256443561400883925",
           "-3330010245231333408"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "7474717735547262305": [
         "-2616231968178105026",
         {
          "args": [
           "1604752399855285098"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "7503727616651843303": [
         "8722543692205951913",
         {
          "args": [
           "4725913326772741315",
           "7118239093530523877"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "7536267128241918466": [
         "7536267128241918466",
         {
          "args": [
           "-6972523730076414042",
           "5479575004185676687"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "7603985805982962822": [
         "6856276731336713150",
         {
          "args": [
           "8266958099135067338",
           "-7942013740372488676"
          ],
          "function": "Module.register_function_one"
         }
        ],
        "7814178186524355439": [
         "3918164425348840515",
         {
          "args": [
           "-933147840307797687",
           "-3676002535650134703"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "7827400091205757843": [
         "7827400091205757843",
         {
          "args": [
           "-2851711366118638850",
           "6538013570818597808"
          ],
          "function": "Integer.__add__"
         }
        ],
        "8081585524676436271": [
         "-6088525062024978323",
         {
          "args": [
           "-5019137516813892370"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "813800637616694484": [
         "813800637616694484",
         {
          "args": [
           "-8869922616258736873",
           "-2010475523332315978"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "8187349443881251148": [
         "-1500747919639408199",
         {
          "args": [
           "5764714247852502735",
           "-6404377335771370736"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "8189062730614172955": [
         "-1204073473483278343",
         {
          "args": [
           "6538013570818597808",
           "-7475059708508343358"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "8266958099135067338": [
         "7108997176786111947",
         {
          "args": [
           "-5746334004973404524"
          ],
          "function": "Pair.left",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "8403424637920052158": [
         "7108997176786111947",
         {
          "args": [
           "-4851325084541919240"
          ],
          "function": "Pair.left",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "8404341556129260478": [
         "4615692901985549771",
         {
          "args": [
           "-2416744201801222842",
           "-2616231968178105026"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "8491250713645872490": [
         "8491250713645872490",
         {
          "repr": "Variable(4693978192)",
          "type": "Variable"
         }
        ],
        "8491250716916180515": [
         "8491250716916180515",
         {
          "repr": "Variable(4693897056)",
          "type": "Variable"
         }
        ],
        "8491250738698748565": [
         "8491250738698748565",
         {
          "repr": "Variable(4693673408)",
          "type": "Variable"
         }
        ],
        "8491251180266108690": [
         "8491251180266108690",
         {
          "repr": "Variable(4693405648)",
          "type": "Variable"
         }
        ],
        "8516094059202496079": [
         "9035282438128528067",
         {
          "args": [
           "382668138798061573",
           "-3938349888668918862"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "8561017931360334080": [
         "-9012227333621399175",
         {
          "args": [
           "3686831515708517186",
           "-3684866814833995140"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "8722543692205951913": [
         "8722543692205951913",
         {
          "args": [
           "6001600019183705625"
          ],
          "function": "FunctionOne.from_fn"
         }
        ],
        "880491815589452508": [
         "1503188694666229145",
         {
          "args": [
           "-2218404699472089453",
           "-39358014160072841"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "8967542854824113341": [
         "-1500747919639408199",
         {
          "args": [
           "5764714247852502735",
           "2193892090084648025"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "8971793020356699732": [
         "5623947456069685973",
         {
          "args": [
           "-2416744201801222842",
           "-6088525062024978323"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "8972369975130776289": [
         "8972369975130776289",
         {
          "args": [
           "7412632608954890315"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "9035282438128528067": [
         "9035282438128528067",
         {
          "args": [
           "382668138798061573",
           "4615692901985549771"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "90871822513410697": [
         "1503188694666229145",
         {
          "args": [
           "-2218404699472089453",
           "8972369975130776289"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "962989529247964034": [
         "2193892090084648025",
         {
          "args": [
           "1963673822784011260",
           "6099022499168263336"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "9806125132565529": [
         "5623947456069685973",
         {
          "args": [
           "-2416744201801222842",
           "5337637645072033610"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ]
       },
       "states": {
        "initial": "6856276731336713150",
        "states": [
         {
          "node": "5654953204440361295",
          "rule": "metadsl_core.function.FunctionOne.from_fn"
         },
         {
          "node": "6963002688607303346",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "1805265982070591545",
          "rule": "metadsl_core.function.FunctionThree.from_fn_recursive"
         },
         {
          "node": "-6332609585604097430",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "1290740132143854684",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "-7294472008854822226",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "-8736799035775674707",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "-8723637583106453615",
          "rule": "metadsl_core.function.FunctionThree.from_fn_recursive"
         },
         {
          "node": "1413951941586074189",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "-3126007499610303067",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "7603985805982962822",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "4956368705773594650",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "-3978392646477205804",
          "rule": "metadsl_core.function.three_call"
         },
         {
          "node": "361444152944097461",
          "rule": "metadsl_core.function.three_abstraction"
         },
         {
          "node": "504943505945954141",
          "rule": "metadsl_core.function.three_call"
         },
         {
          "node": "-5332641643694669743",
          "rule": "metadsl_core.function.three_abstraction"
         },
         {
          "label": "core",
          "node": "-5332641643694669743",
          "rule": ""
         }
        ]
       }
      },
      "application/x.typez.graph+json": {
       "initial": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t6856276731336713150 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t6856276731336713150 -> 7108997176786111947 [id=\"6856276731336713150.args[0]\"]\n\t7108997176786111947 [label=\"Pair.left\" id=7108997176786111947]\n\t7108997176786111947 -> 4626752930784986669 [id=\"7108997176786111947.args[0]\"]\n\t4626752930784986669 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4626752930784986669 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4626752930784986669 -> 5623947456069685973 [id=\"4626752930784986669.args[1]\"]\n\t5623947456069685973 [label=\"FunctionThree.from_fn_recursive\" id=5623947456069685973]\n\t5623947456069685973 -> -3221772017662409983 [id=\"5623947456069685973.args[0]\"]\n\t-3221772017662409983 [label=\"function fib_more at 0x10cf23b70\" id=-3221772017662409983]\n\t6856276731336713150 -> 8722543692205951913 [id=\"6856276731336713150.args[1]\"]\n\t8722543692205951913 [label=\"FunctionOne.from_fn\" id=8722543692205951913]\n\t8722543692205951913 -> 6001600019183705625 [id=\"8722543692205951913.args[0]\"]\n\t6001600019183705625 [label=\"function fib at 0x10cf23bf8\" id=6001600019183705625]\n}",
       "states": [
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t5654953204440361295 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t5654953204440361295 -> 7108997176786111947 [id=\"6856276731336713150.args[0]\"]\n\t7108997176786111947 [label=\"Pair.left\" id=7108997176786111947]\n\t7108997176786111947 -> 4626752930784986669 [id=\"7108997176786111947.args[0]\"]\n\t4626752930784986669 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4626752930784986669 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4626752930784986669 -> 5623947456069685973 [id=\"4626752930784986669.args[1]\"]\n\t5623947456069685973 [label=\"FunctionThree.from_fn_recursive\" id=5623947456069685973]\n\t5623947456069685973 -> -3221772017662409983 [id=\"5623947456069685973.args[0]\"]\n\t-3221772017662409983 [label=\"function fib_more at 0x10cf23b70\" id=-3221772017662409983]\n\t5654953204440361295 -> -7915888723707701402 [id=\"6856276731336713150.args[1]\"]\n\t-7915888723707701402 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-7915888723707701402 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-7915888723707701402 -> 6261526295775775673 [id=\"8722543692205951913.args[1]\"]\n\t6261526295775775673 [label=\"Abstraction.from_fn\" id=6261526295775775673]\n\t6261526295775775673 -> 7412632649493286515 [id=\"6261526295775775673.args[0]\"]\n\t7412632649493286515 [label=\"FunctionReplaceTyping(fn=function fib at 0x10cf23bf8, typevars={~T: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117bf77b8)\" id=7412632649493286515]\n}",
         "label": null,
         "rule": "metadsl_core.function.FunctionOne.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t6963002688607303346 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t6963002688607303346 -> 7108997176786111947 [id=\"6856276731336713150.args[0]\"]\n\t7108997176786111947 [label=\"Pair.left\" id=7108997176786111947]\n\t7108997176786111947 -> 4626752930784986669 [id=\"7108997176786111947.args[0]\"]\n\t4626752930784986669 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4626752930784986669 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4626752930784986669 -> 5623947456069685973 [id=\"4626752930784986669.args[1]\"]\n\t5623947456069685973 [label=\"FunctionThree.from_fn_recursive\" id=5623947456069685973]\n\t5623947456069685973 -> -3221772017662409983 [id=\"5623947456069685973.args[0]\"]\n\t-3221772017662409983 [label=\"function fib_more at 0x10cf23b70\" id=-3221772017662409983]\n\t6963002688607303346 -> 1010594837940157392 [id=\"6856276731336713150.args[1]\"]\n\t1010594837940157392 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t1010594837940157392 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t1010594837940157392 -> -45428351763996943 [id=\"8722543692205951913.args[1]\"]\n\t-45428351763996943 [label=\"Abstraction.create\" id=6261526295775775673]\n\t-45428351763996943 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t-45428351763996943 -> 7220818836429339286 [id=\"6261526295775775673.args[1]\"]\n\t7220818836429339286 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t7220818836429339286 -> 1524023298192473829 [id=\"7220818836429339286.args[0]\"]\n\t1524023298192473829 [label=\"Pair.right\" id=1524023298192473829]\n\t1524023298192473829 -> 9035282438128528067 [id=\"1524023298192473829.args[0]\"]\n\t9035282438128528067 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t9035282438128528067 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t9035282438128528067 -> 4615692901985549771 [id=\"9035282438128528067.args[1]\"]\n\t4615692901985549771 [label=\"FunctionThree.from_fn_recursive\" id=4615692901985549771]\n\t4615692901985549771 -> 7412625438300630115 [id=\"4615692901985549771.args[0]\"]\n\t7412625438300630115 [label=\"FunctionReplaceTyping(fn=function fib_more at 0x10cf23b70, typevars={~T: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117bf7b70)\" id=7412625438300630115]\n\t7220818836429339286 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t7220818836429339286 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t7220818836429339286 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t1805265982070591545 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t1805265982070591545 -> 7108997176786111947 [id=\"6856276731336713150.args[0]\"]\n\t7108997176786111947 [label=\"Pair.left\" id=7108997176786111947]\n\t7108997176786111947 -> 4626752930784986669 [id=\"7108997176786111947.args[0]\"]\n\t4626752930784986669 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4626752930784986669 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4626752930784986669 -> 5623947456069685973 [id=\"4626752930784986669.args[1]\"]\n\t5623947456069685973 [label=\"FunctionThree.from_fn_recursive\" id=5623947456069685973]\n\t5623947456069685973 -> -3221772017662409983 [id=\"5623947456069685973.args[0]\"]\n\t-3221772017662409983 [label=\"function fib_more at 0x10cf23b70\" id=-3221772017662409983]\n\t1805265982070591545 -> 1153440509156381989 [id=\"6856276731336713150.args[1]\"]\n\t1153440509156381989 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t1153440509156381989 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t1153440509156381989 -> -4143833434479094413 [id=\"8722543692205951913.args[1]\"]\n\t-4143833434479094413 [label=\"Abstraction.create\" id=6261526295775775673]\n\t-4143833434479094413 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t-4143833434479094413 -> -1443395813807034717 [id=\"6261526295775775673.args[1]\"]\n\t-1443395813807034717 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t-1443395813807034717 -> 601616740275993098 [id=\"7220818836429339286.args[0]\"]\n\t601616740275993098 [label=\"Pair.right\" id=1524023298192473829]\n\t601616740275993098 -> -6838072510089444641 [id=\"1524023298192473829.args[0]\"]\n\t-6838072510089444641 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-6838072510089444641 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-6838072510089444641 -> 8404341556129260478 [id=\"9035282438128528067.args[1]\"]\n\t8404341556129260478 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t8404341556129260478 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t8404341556129260478 -> -2616231968178105026 [id=\"4615692901985549771.args[1]\"]\n\t-2616231968178105026 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t-2616231968178105026 -> 1503188694666229145 [id=\"-2616231968178105026.args[0]\"]\n\t1503188694666229145 [label=\"Abstraction.from_fn\" id=1503188694666229145]\n\t1503188694666229145 -> 7412632538885212115 [id=\"1503188694666229145.args[0]\"]\n\t7412632538885212115 [label=\"FunctionReplaceTyping(fn=function FunctionThree.from_fn_recursive.locals.inner at 0x10cf420d0, typevars={~V: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer', ~T: class 'metadsl_core.integer.Integer', ~X: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117bf7d90)\" id=7412632538885212115]\n\t-1443395813807034717 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t-1443395813807034717 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t-1443395813807034717 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n}",
         "label": null,
         "rule": "metadsl_core.function.FunctionThree.from_fn_recursive"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-6332609585604097430 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t-6332609585604097430 -> 7108997176786111947 [id=\"6856276731336713150.args[0]\"]\n\t7108997176786111947 [label=\"Pair.left\" id=7108997176786111947]\n\t7108997176786111947 -> 4626752930784986669 [id=\"7108997176786111947.args[0]\"]\n\t4626752930784986669 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4626752930784986669 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4626752930784986669 -> 5623947456069685973 [id=\"4626752930784986669.args[1]\"]\n\t5623947456069685973 [label=\"FunctionThree.from_fn_recursive\" id=5623947456069685973]\n\t5623947456069685973 -> -3221772017662409983 [id=\"5623947456069685973.args[0]\"]\n\t-3221772017662409983 [label=\"function fib_more at 0x10cf23b70\" id=-3221772017662409983]\n\t-6332609585604097430 -> -3092924321317758663 [id=\"6856276731336713150.args[1]\"]\n\t-3092924321317758663 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-3092924321317758663 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-3092924321317758663 -> 2745596852532900277 [id=\"8722543692205951913.args[1]\"]\n\t2745596852532900277 [label=\"Abstraction.create\" id=6261526295775775673]\n\t2745596852532900277 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t2745596852532900277 -> 6825170533652453955 [id=\"6261526295775775673.args[1]\"]\n\t6825170533652453955 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t6825170533652453955 -> 6568632049537082536 [id=\"7220818836429339286.args[0]\"]\n\t6568632049537082536 [label=\"Pair.right\" id=1524023298192473829]\n\t6568632049537082536 -> 6926423155304698820 [id=\"1524023298192473829.args[0]\"]\n\t6926423155304698820 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t6926423155304698820 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t6926423155304698820 -> -3914589061855157043 [id=\"9035282438128528067.args[1]\"]\n\t-3914589061855157043 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t-3914589061855157043 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t-3914589061855157043 -> 5414232390638848622 [id=\"4615692901985549771.args[1]\"]\n\t5414232390638848622 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t5414232390638848622 -> 90871822513410697 [id=\"-2616231968178105026.args[0]\"]\n\t90871822513410697 [label=\"Abstraction.create\" id=1503188694666229145]\n\t90871822513410697 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t90871822513410697 -> 8972369975130776289 [id=\"1503188694666229145.args[1]\"]\n\t8972369975130776289 [label=\"Abstraction.from_fn\" id=8972369975130776289]\n\t8972369975130776289 -> 7412632608954890315 [id=\"8972369975130776289.args[0]\"]\n\t7412632608954890315 [label=\"FunctionReplaceTyping(fn=function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner at 0x117bf7730, typevars={~V: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer', ~T: class 'metadsl_core.integer.Integer', ~X: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117bf7ea0)\" id=7412632608954890315]\n\t6825170533652453955 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t6825170533652453955 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t6825170533652453955 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t1290740132143854684 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t1290740132143854684 -> 7108997176786111947 [id=\"6856276731336713150.args[0]\"]\n\t7108997176786111947 [label=\"Pair.left\" id=7108997176786111947]\n\t7108997176786111947 -> 4626752930784986669 [id=\"7108997176786111947.args[0]\"]\n\t4626752930784986669 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4626752930784986669 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4626752930784986669 -> 5623947456069685973 [id=\"4626752930784986669.args[1]\"]\n\t5623947456069685973 [label=\"FunctionThree.from_fn_recursive\" id=5623947456069685973]\n\t5623947456069685973 -> -3221772017662409983 [id=\"5623947456069685973.args[0]\"]\n\t-3221772017662409983 [label=\"function fib_more at 0x10cf23b70\" id=-3221772017662409983]\n\t1290740132143854684 -> 7503727616651843303 [id=\"6856276731336713150.args[1]\"]\n\t7503727616651843303 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t7503727616651843303 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t7503727616651843303 -> 7118239093530523877 [id=\"8722543692205951913.args[1]\"]\n\t7118239093530523877 [label=\"Abstraction.create\" id=6261526295775775673]\n\t7118239093530523877 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t7118239093530523877 -> -5713417871866583945 [id=\"6261526295775775673.args[1]\"]\n\t-5713417871866583945 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t-5713417871866583945 -> -7281935149975180479 [id=\"7220818836429339286.args[0]\"]\n\t-7281935149975180479 [label=\"Pair.right\" id=1524023298192473829]\n\t-7281935149975180479 -> 8516094059202496079 [id=\"1524023298192473829.args[0]\"]\n\t8516094059202496079 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t8516094059202496079 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t8516094059202496079 -> -3938349888668918862 [id=\"9035282438128528067.args[1]\"]\n\t-3938349888668918862 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t-3938349888668918862 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t-3938349888668918862 -> -7047487661644010508 [id=\"4615692901985549771.args[1]\"]\n\t-7047487661644010508 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t-7047487661644010508 -> 1490821829957485115 [id=\"-2616231968178105026.args[0]\"]\n\t1490821829957485115 [label=\"Abstraction.create\" id=1503188694666229145]\n\t1490821829957485115 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t1490821829957485115 -> -7084901351516393663 [id=\"1503188694666229145.args[1]\"]\n\t-7084901351516393663 [label=\"Abstraction.create\" id=8972369975130776289]\n\t-7084901351516393663 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t-7084901351516393663 -> -1500747919639408199 [id=\"8972369975130776289.args[1]\"]\n\t-1500747919639408199 [label=\"Abstraction.from_fn\" id=-1500747919639408199]\n\t-1500747919639408199 -> 7412632542522496115 [id=\"-1500747919639408199.args[0]\"]\n\t7412632542522496115 [label=\"FunctionReplaceTyping(fn=function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner.locals.inner_inner_inner at 0x117bf7d90, typevars={~V: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer', ~T: class 'metadsl_core.integer.Integer', ~X: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117bf79d8)\" id=7412632542522496115]\n\t-5713417871866583945 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t-5713417871866583945 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t-5713417871866583945 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-7294472008854822226 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t-7294472008854822226 -> 7108997176786111947 [id=\"6856276731336713150.args[0]\"]\n\t7108997176786111947 [label=\"Pair.left\" id=7108997176786111947]\n\t7108997176786111947 -> 4626752930784986669 [id=\"7108997176786111947.args[0]\"]\n\t4626752930784986669 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4626752930784986669 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4626752930784986669 -> 5623947456069685973 [id=\"4626752930784986669.args[1]\"]\n\t5623947456069685973 [label=\"FunctionThree.from_fn_recursive\" id=5623947456069685973]\n\t5623947456069685973 -> -3221772017662409983 [id=\"5623947456069685973.args[0]\"]\n\t-3221772017662409983 [label=\"function fib_more at 0x10cf23b70\" id=-3221772017662409983]\n\t-7294472008854822226 -> 190925817868034716 [id=\"6856276731336713150.args[1]\"]\n\t190925817868034716 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t190925817868034716 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t190925817868034716 -> -4207933847189016290 [id=\"8722543692205951913.args[1]\"]\n\t-4207933847189016290 [label=\"Abstraction.create\" id=6261526295775775673]\n\t-4207933847189016290 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t-4207933847189016290 -> 3679952967203657599 [id=\"6261526295775775673.args[1]\"]\n\t3679952967203657599 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t3679952967203657599 -> -1714617617501617066 [id=\"7220818836429339286.args[0]\"]\n\t-1714617617501617066 [label=\"Pair.right\" id=1524023298192473829]\n\t-1714617617501617066 -> 548738157770213529 [id=\"1524023298192473829.args[0]\"]\n\t548738157770213529 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t548738157770213529 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t548738157770213529 -> -5336534128346101251 [id=\"9035282438128528067.args[1]\"]\n\t-5336534128346101251 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t-5336534128346101251 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t-5336534128346101251 -> 2419193387387549503 [id=\"4615692901985549771.args[1]\"]\n\t2419193387387549503 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t2419193387387549503 -> 1151106901067544956 [id=\"-2616231968178105026.args[0]\"]\n\t1151106901067544956 [label=\"Abstraction.create\" id=1503188694666229145]\n\t1151106901067544956 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t1151106901067544956 -> 3408071583970995350 [id=\"1503188694666229145.args[1]\"]\n\t3408071583970995350 [label=\"Abstraction.create\" id=8972369975130776289]\n\t3408071583970995350 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t3408071583970995350 -> 8967542854824113341 [id=\"8972369975130776289.args[1]\"]\n\t8967542854824113341 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t8967542854824113341 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t8967542854824113341 -> 2193892090084648025 [id=\"-1500747919639408199.args[1]\"]\n\t2193892090084648025 [label=\"Abstraction.from_fn\" id=2193892090084648025]\n\t2193892090084648025 -> 7412633025588452115 [id=\"2193892090084648025.args[0]\"]\n\t7412633025588452115 [label=\"FunctionReplaceTyping(fn=function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner.locals.inner_inner_inner.locals.inner_inner_inner_inner at 0x117bf7ea0, typevars={~V: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer', ~T: class 'metadsl_core.integer.Integer', ~X: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117bf7620)\" id=7412633025588452115]\n\t3679952967203657599 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t3679952967203657599 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t3679952967203657599 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-8736799035775674707 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t-8736799035775674707 -> 7108997176786111947 [id=\"6856276731336713150.args[0]\"]\n\t7108997176786111947 [label=\"Pair.left\" id=7108997176786111947]\n\t7108997176786111947 -> 4626752930784986669 [id=\"7108997176786111947.args[0]\"]\n\t4626752930784986669 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4626752930784986669 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4626752930784986669 -> 5623947456069685973 [id=\"4626752930784986669.args[1]\"]\n\t5623947456069685973 [label=\"FunctionThree.from_fn_recursive\" id=5623947456069685973]\n\t5623947456069685973 -> -3221772017662409983 [id=\"5623947456069685973.args[0]\"]\n\t-3221772017662409983 [label=\"function fib_more at 0x10cf23b70\" id=-3221772017662409983]\n\t-8736799035775674707 -> -7942013740372488676 [id=\"6856276731336713150.args[1]\"]\n\t-7942013740372488676 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-7942013740372488676 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-7942013740372488676 -> 4210816321380885404 [id=\"8722543692205951913.args[1]\"]\n\t4210816321380885404 [label=\"Abstraction.create\" id=6261526295775775673]\n\t4210816321380885404 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t4210816321380885404 -> 4271036976135164429 [id=\"6261526295775775673.args[1]\"]\n\t4271036976135164429 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t4271036976135164429 -> -5356085944341333606 [id=\"7220818836429339286.args[0]\"]\n\t-5356085944341333606 [label=\"Pair.right\" id=1524023298192473829]\n\t-5356085944341333606 -> -4680000350632046801 [id=\"1524023298192473829.args[0]\"]\n\t-4680000350632046801 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-4680000350632046801 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-4680000350632046801 -> 271414626174357713 [id=\"9035282438128528067.args[1]\"]\n\t271414626174357713 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t271414626174357713 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t271414626174357713 -> 7474717735547262305 [id=\"4615692901985549771.args[1]\"]\n\t7474717735547262305 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t7474717735547262305 -> 1604752399855285098 [id=\"-2616231968178105026.args[0]\"]\n\t1604752399855285098 [label=\"Abstraction.create\" id=1503188694666229145]\n\t1604752399855285098 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t1604752399855285098 -> -2974947399862450098 [id=\"1503188694666229145.args[1]\"]\n\t-2974947399862450098 [label=\"Abstraction.create\" id=8972369975130776289]\n\t-2974947399862450098 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t-2974947399862450098 -> 1687986881092766184 [id=\"8972369975130776289.args[1]\"]\n\t1687986881092766184 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1687986881092766184 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1687986881092766184 -> 962989529247964034 [id=\"-1500747919639408199.args[1]\"]\n\t962989529247964034 [label=\"Abstraction.create\" id=2193892090084648025]\n\t962989529247964034 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t962989529247964034 -> 6099022499168263336 [id=\"2193892090084648025.args[1]\"]\n\t6099022499168263336 [label=\"Boolean.if_\" id=6099022499168263336]\n\t6099022499168263336 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t6099022499168263336 -> 3918164425348840515 [id=\"6099022499168263336.args[1]\"]\n\t3918164425348840515 [label=\"FunctionThree.__call__\" id=3918164425348840515]\n\t3918164425348840515 -> 5273669542542420348 [id=\"3918164425348840515.args[0]\"]\n\t5273669542542420348 [label=\"FunctionThree.create\" id=5273669542542420348]\n\t5273669542542420348 -> -2416744201801222842 [id=\"5273669542542420348.args[0]\"]\n\t5273669542542420348 -> -2218404699472089453 [id=\"5273669542542420348.args[1]\"]\n\t3918164425348840515 -> -2010475523332315978 [id=\"3918164425348840515.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t3918164425348840515 -> 1963673822784011260 [id=\"3918164425348840515.args[2]\"]\n\t3918164425348840515 -> -3676002535650134703 [id=\"3918164425348840515.args[3]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t6099022499168263336 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t4271036976135164429 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t4271036976135164429 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t4271036976135164429 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-8723637583106453615 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t-8723637583106453615 -> -3749917521659886773 [id=\"6856276731336713150.args[0]\"]\n\t-3749917521659886773 [label=\"Pair.left\" id=7108997176786111947]\n\t-3749917521659886773 -> 5410484726792215981 [id=\"7108997176786111947.args[0]\"]\n\t5410484726792215981 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t5410484726792215981 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t5410484726792215981 -> 8971793020356699732 [id=\"4626752930784986669.args[1]\"]\n\t8971793020356699732 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t8971793020356699732 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t8971793020356699732 -> -6088525062024978323 [id=\"5623947456069685973.args[1]\"]\n\t-6088525062024978323 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t-6088525062024978323 -> -9012227333621399175 [id=\"-6088525062024978323.args[0]\"]\n\t-9012227333621399175 [label=\"Abstraction.from_fn\" id=-9012227333621399175]\n\t-9012227333621399175 -> 7412632606607976115 [id=\"-9012227333621399175.args[0]\"]\n\t7412632606607976115 [label=\"FunctionReplaceTyping(fn=function FunctionThree.from_fn_recursive.locals.inner at 0x117bf7620, typevars={~V: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer', ~T: class 'metadsl_core.integer.Integer', ~X: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117bf79d8)\" id=7412632606607976115]\n\t-8723637583106453615 -> -7942013740372488676 [id=\"6856276731336713150.args[1]\"]\n\t-7942013740372488676 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-7942013740372488676 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-7942013740372488676 -> 4210816321380885404 [id=\"8722543692205951913.args[1]\"]\n\t4210816321380885404 [label=\"Abstraction.create\" id=6261526295775775673]\n\t4210816321380885404 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t4210816321380885404 -> 4271036976135164429 [id=\"6261526295775775673.args[1]\"]\n\t4271036976135164429 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t4271036976135164429 -> -5356085944341333606 [id=\"7220818836429339286.args[0]\"]\n\t-5356085944341333606 [label=\"Pair.right\" id=1524023298192473829]\n\t-5356085944341333606 -> -4680000350632046801 [id=\"1524023298192473829.args[0]\"]\n\t-4680000350632046801 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-4680000350632046801 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-4680000350632046801 -> 271414626174357713 [id=\"9035282438128528067.args[1]\"]\n\t271414626174357713 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t271414626174357713 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t271414626174357713 -> 7474717735547262305 [id=\"4615692901985549771.args[1]\"]\n\t7474717735547262305 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t7474717735547262305 -> 1604752399855285098 [id=\"-2616231968178105026.args[0]\"]\n\t1604752399855285098 [label=\"Abstraction.create\" id=1503188694666229145]\n\t1604752399855285098 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t1604752399855285098 -> -2974947399862450098 [id=\"1503188694666229145.args[1]\"]\n\t-2974947399862450098 [label=\"Abstraction.create\" id=8972369975130776289]\n\t-2974947399862450098 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t-2974947399862450098 -> 1687986881092766184 [id=\"8972369975130776289.args[1]\"]\n\t1687986881092766184 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1687986881092766184 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1687986881092766184 -> 962989529247964034 [id=\"-1500747919639408199.args[1]\"]\n\t962989529247964034 [label=\"Abstraction.create\" id=2193892090084648025]\n\t962989529247964034 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t962989529247964034 -> 6099022499168263336 [id=\"2193892090084648025.args[1]\"]\n\t6099022499168263336 [label=\"Boolean.if_\" id=6099022499168263336]\n\t6099022499168263336 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t6099022499168263336 -> 3918164425348840515 [id=\"6099022499168263336.args[1]\"]\n\t3918164425348840515 [label=\"FunctionThree.__call__\" id=3918164425348840515]\n\t3918164425348840515 -> 5273669542542420348 [id=\"3918164425348840515.args[0]\"]\n\t5273669542542420348 [label=\"FunctionThree.create\" id=5273669542542420348]\n\t5273669542542420348 -> -2416744201801222842 [id=\"5273669542542420348.args[0]\"]\n\t5273669542542420348 -> -2218404699472089453 [id=\"5273669542542420348.args[1]\"]\n\t3918164425348840515 -> -2010475523332315978 [id=\"3918164425348840515.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t3918164425348840515 -> 1963673822784011260 [id=\"3918164425348840515.args[2]\"]\n\t3918164425348840515 -> -3676002535650134703 [id=\"3918164425348840515.args[3]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t6099022499168263336 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t4271036976135164429 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t4271036976135164429 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t4271036976135164429 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.function.FunctionThree.from_fn_recursive"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t1413951941586074189 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t1413951941586074189 -> -6521625635168606160 [id=\"6856276731336713150.args[0]\"]\n\t-6521625635168606160 [label=\"Pair.left\" id=7108997176786111947]\n\t-6521625635168606160 -> 4620350306840254974 [id=\"7108997176786111947.args[0]\"]\n\t4620350306840254974 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t4620350306840254974 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t4620350306840254974 -> -2525115720496718177 [id=\"4626752930784986669.args[1]\"]\n\t-2525115720496718177 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t-2525115720496718177 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t-2525115720496718177 -> 2169120372976143626 [id=\"5623947456069685973.args[1]\"]\n\t2169120372976143626 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t2169120372976143626 -> 3546234555524329108 [id=\"-6088525062024978323.args[0]\"]\n\t3546234555524329108 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t3546234555524329108 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t3546234555524329108 -> -5676828982477546559 [id=\"-9012227333621399175.args[1]\"]\n\t-5676828982477546559 [label=\"Abstraction.from_fn\" id=-5676828982477546559]\n\t-5676828982477546559 -> 7412632563887209515 [id=\"-5676828982477546559.args[0]\"]\n\t7412632563887209515 [label=\"FunctionReplaceTyping(fn=function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner at 0x117c566a8, typevars={~V: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer', ~T: class 'metadsl_core.integer.Integer', ~X: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117c567b8)\" id=7412632563887209515]\n\t1413951941586074189 -> -7942013740372488676 [id=\"6856276731336713150.args[1]\"]\n\t-7942013740372488676 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-7942013740372488676 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-7942013740372488676 -> 4210816321380885404 [id=\"8722543692205951913.args[1]\"]\n\t4210816321380885404 [label=\"Abstraction.create\" id=6261526295775775673]\n\t4210816321380885404 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t4210816321380885404 -> 4271036976135164429 [id=\"6261526295775775673.args[1]\"]\n\t4271036976135164429 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t4271036976135164429 -> -5356085944341333606 [id=\"7220818836429339286.args[0]\"]\n\t-5356085944341333606 [label=\"Pair.right\" id=1524023298192473829]\n\t-5356085944341333606 -> -4680000350632046801 [id=\"1524023298192473829.args[0]\"]\n\t-4680000350632046801 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-4680000350632046801 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-4680000350632046801 -> 271414626174357713 [id=\"9035282438128528067.args[1]\"]\n\t271414626174357713 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t271414626174357713 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t271414626174357713 -> 7474717735547262305 [id=\"4615692901985549771.args[1]\"]\n\t7474717735547262305 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t7474717735547262305 -> 1604752399855285098 [id=\"-2616231968178105026.args[0]\"]\n\t1604752399855285098 [label=\"Abstraction.create\" id=1503188694666229145]\n\t1604752399855285098 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t1604752399855285098 -> -2974947399862450098 [id=\"1503188694666229145.args[1]\"]\n\t-2974947399862450098 [label=\"Abstraction.create\" id=8972369975130776289]\n\t-2974947399862450098 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t-2974947399862450098 -> 1687986881092766184 [id=\"8972369975130776289.args[1]\"]\n\t1687986881092766184 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1687986881092766184 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1687986881092766184 -> 962989529247964034 [id=\"-1500747919639408199.args[1]\"]\n\t962989529247964034 [label=\"Abstraction.create\" id=2193892090084648025]\n\t962989529247964034 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t962989529247964034 -> 6099022499168263336 [id=\"2193892090084648025.args[1]\"]\n\t6099022499168263336 [label=\"Boolean.if_\" id=6099022499168263336]\n\t6099022499168263336 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t6099022499168263336 -> 3918164425348840515 [id=\"6099022499168263336.args[1]\"]\n\t3918164425348840515 [label=\"FunctionThree.__call__\" id=3918164425348840515]\n\t3918164425348840515 -> 5273669542542420348 [id=\"3918164425348840515.args[0]\"]\n\t5273669542542420348 [label=\"FunctionThree.create\" id=5273669542542420348]\n\t5273669542542420348 -> -2416744201801222842 [id=\"5273669542542420348.args[0]\"]\n\t5273669542542420348 -> -2218404699472089453 [id=\"5273669542542420348.args[1]\"]\n\t3918164425348840515 -> -2010475523332315978 [id=\"3918164425348840515.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t3918164425348840515 -> 1963673822784011260 [id=\"3918164425348840515.args[2]\"]\n\t3918164425348840515 -> -3676002535650134703 [id=\"3918164425348840515.args[3]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t6099022499168263336 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t4271036976135164429 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t4271036976135164429 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t4271036976135164429 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-3126007499610303067 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t-3126007499610303067 -> -942883308524420890 [id=\"6856276731336713150.args[0]\"]\n\t-942883308524420890 [label=\"Pair.left\" id=7108997176786111947]\n\t-942883308524420890 -> -1237837872188061842 [id=\"7108997176786111947.args[0]\"]\n\t-1237837872188061842 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t-1237837872188061842 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t-1237837872188061842 -> 6909541235474180300 [id=\"4626752930784986669.args[1]\"]\n\t6909541235474180300 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t6909541235474180300 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t6909541235474180300 -> 6062302019901458689 [id=\"5623947456069685973.args[1]\"]\n\t6062302019901458689 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t6062302019901458689 -> -7766744624820697011 [id=\"-6088525062024978323.args[0]\"]\n\t-7766744624820697011 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t-7766744624820697011 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t-7766744624820697011 -> 6338018295508169414 [id=\"-9012227333621399175.args[1]\"]\n\t6338018295508169414 [label=\"Abstraction.create\" id=-5676828982477546559]\n\t6338018295508169414 -> -1256443561400883925 [id=\"-5676828982477546559.args[0]\"]\n\t-1256443561400883925 [label=\"Abstraction.create_variable\" id=-1256443561400883925]\n\t-1256443561400883925 -> 8491250713645872490 [id=\"-1256443561400883925.args[0]\"]\n\t8491250713645872490 [label=\"Variable(4693978192)\" id=8491250713645872490]\n\t6338018295508169414 -> -5004895946799091351 [id=\"-5676828982477546559.args[1]\"]\n\t-5004895946799091351 [label=\"Abstraction.from_fn\" id=-5004895946799091351]\n\t-5004895946799091351 -> 7412633363422854115 [id=\"-5004895946799091351.args[0]\"]\n\t7412633363422854115 [label=\"FunctionReplaceTyping(fn=function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner.locals.inner_inner_inner at 0x117bf7a60, typevars={~V: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer', ~T: class 'metadsl_core.integer.Integer', ~X: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117bf7510)\" id=7412633363422854115]\n\t-3126007499610303067 -> -7942013740372488676 [id=\"6856276731336713150.args[1]\"]\n\t-7942013740372488676 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-7942013740372488676 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-7942013740372488676 -> 4210816321380885404 [id=\"8722543692205951913.args[1]\"]\n\t4210816321380885404 [label=\"Abstraction.create\" id=6261526295775775673]\n\t4210816321380885404 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t4210816321380885404 -> 4271036976135164429 [id=\"6261526295775775673.args[1]\"]\n\t4271036976135164429 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t4271036976135164429 -> -5356085944341333606 [id=\"7220818836429339286.args[0]\"]\n\t-5356085944341333606 [label=\"Pair.right\" id=1524023298192473829]\n\t-5356085944341333606 -> -4680000350632046801 [id=\"1524023298192473829.args[0]\"]\n\t-4680000350632046801 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-4680000350632046801 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-4680000350632046801 -> 271414626174357713 [id=\"9035282438128528067.args[1]\"]\n\t271414626174357713 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t271414626174357713 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t271414626174357713 -> 7474717735547262305 [id=\"4615692901985549771.args[1]\"]\n\t7474717735547262305 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t7474717735547262305 -> 1604752399855285098 [id=\"-2616231968178105026.args[0]\"]\n\t1604752399855285098 [label=\"Abstraction.create\" id=1503188694666229145]\n\t1604752399855285098 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t1604752399855285098 -> -2974947399862450098 [id=\"1503188694666229145.args[1]\"]\n\t-2974947399862450098 [label=\"Abstraction.create\" id=8972369975130776289]\n\t-2974947399862450098 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t-2974947399862450098 -> 1687986881092766184 [id=\"8972369975130776289.args[1]\"]\n\t1687986881092766184 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1687986881092766184 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1687986881092766184 -> 962989529247964034 [id=\"-1500747919639408199.args[1]\"]\n\t962989529247964034 [label=\"Abstraction.create\" id=2193892090084648025]\n\t962989529247964034 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t962989529247964034 -> 6099022499168263336 [id=\"2193892090084648025.args[1]\"]\n\t6099022499168263336 [label=\"Boolean.if_\" id=6099022499168263336]\n\t6099022499168263336 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t6099022499168263336 -> 3918164425348840515 [id=\"6099022499168263336.args[1]\"]\n\t3918164425348840515 [label=\"FunctionThree.__call__\" id=3918164425348840515]\n\t3918164425348840515 -> 5273669542542420348 [id=\"3918164425348840515.args[0]\"]\n\t5273669542542420348 [label=\"FunctionThree.create\" id=5273669542542420348]\n\t5273669542542420348 -> -2416744201801222842 [id=\"5273669542542420348.args[0]\"]\n\t5273669542542420348 -> -2218404699472089453 [id=\"5273669542542420348.args[1]\"]\n\t3918164425348840515 -> -2010475523332315978 [id=\"3918164425348840515.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t3918164425348840515 -> 1963673822784011260 [id=\"3918164425348840515.args[2]\"]\n\t3918164425348840515 -> -3676002535650134703 [id=\"3918164425348840515.args[3]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t6099022499168263336 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t4271036976135164429 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t4271036976135164429 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t4271036976135164429 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t7603985805982962822 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t7603985805982962822 -> 8266958099135067338 [id=\"6856276731336713150.args[0]\"]\n\t8266958099135067338 [label=\"Pair.left\" id=7108997176786111947]\n\t8266958099135067338 -> -5746334004973404524 [id=\"7108997176786111947.args[0]\"]\n\t-5746334004973404524 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t-5746334004973404524 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t-5746334004973404524 -> -5246748211749191394 [id=\"4626752930784986669.args[1]\"]\n\t-5246748211749191394 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t-5246748211749191394 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t-5246748211749191394 -> 3281284362819432988 [id=\"5623947456069685973.args[1]\"]\n\t3281284362819432988 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t3281284362819432988 -> 8561017931360334080 [id=\"-6088525062024978323.args[0]\"]\n\t8561017931360334080 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t8561017931360334080 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t8561017931360334080 -> -3684866814833995140 [id=\"-9012227333621399175.args[1]\"]\n\t-3684866814833995140 [label=\"Abstraction.create\" id=-5676828982477546559]\n\t-3684866814833995140 -> -1256443561400883925 [id=\"-5676828982477546559.args[0]\"]\n\t-1256443561400883925 [label=\"Abstraction.create_variable\" id=-1256443561400883925]\n\t-1256443561400883925 -> 8491250713645872490 [id=\"-1256443561400883925.args[0]\"]\n\t8491250713645872490 [label=\"Variable(4693978192)\" id=8491250713645872490]\n\t-3684866814833995140 -> -2109586072064441879 [id=\"-5676828982477546559.args[1]\"]\n\t-2109586072064441879 [label=\"Abstraction.create\" id=-5004895946799091351]\n\t-2109586072064441879 -> -2851711366118638850 [id=\"-5004895946799091351.args[0]\"]\n\t-2851711366118638850 [label=\"Abstraction.create_variable\" id=-2851711366118638850]\n\t-2851711366118638850 -> -732121308697655693 [id=\"-2851711366118638850.args[0]\"]\n\t-732121308697655693 [label=\"Variable(4693796456)\" id=-732121308697655693]\n\t-2109586072064441879 -> -1204073473483278343 [id=\"-5004895946799091351.args[1]\"]\n\t-1204073473483278343 [label=\"Abstraction.from_fn\" id=-1204073473483278343]\n\t-1204073473483278343 -> 7412632955925803315 [id=\"-1204073473483278343.args[0]\"]\n\t7412632955925803315 [label=\"FunctionReplaceTyping(fn=function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner.locals.inner_inner_inner.locals.inner_inner_inner_inner at 0x117c567b8, typevars={~V: class 'metadsl_core.integer.Integer', ~U: class 'metadsl_core.integer.Integer', ~T: class 'metadsl_core.integer.Integer', ~X: class 'metadsl_core.integer.Integer'}, inner_mapping=function replace_typevars_expression.locals.lambda at 0x117c568c8)\" id=7412632955925803315]\n\t7603985805982962822 -> -7942013740372488676 [id=\"6856276731336713150.args[1]\"]\n\t-7942013740372488676 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-7942013740372488676 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-7942013740372488676 -> 4210816321380885404 [id=\"8722543692205951913.args[1]\"]\n\t4210816321380885404 [label=\"Abstraction.create\" id=6261526295775775673]\n\t4210816321380885404 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t4210816321380885404 -> 4271036976135164429 [id=\"6261526295775775673.args[1]\"]\n\t4271036976135164429 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t4271036976135164429 -> -5356085944341333606 [id=\"7220818836429339286.args[0]\"]\n\t-5356085944341333606 [label=\"Pair.right\" id=1524023298192473829]\n\t-5356085944341333606 -> -4680000350632046801 [id=\"1524023298192473829.args[0]\"]\n\t-4680000350632046801 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-4680000350632046801 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-4680000350632046801 -> 271414626174357713 [id=\"9035282438128528067.args[1]\"]\n\t271414626174357713 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t271414626174357713 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t271414626174357713 -> 7474717735547262305 [id=\"4615692901985549771.args[1]\"]\n\t7474717735547262305 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t7474717735547262305 -> 1604752399855285098 [id=\"-2616231968178105026.args[0]\"]\n\t1604752399855285098 [label=\"Abstraction.create\" id=1503188694666229145]\n\t1604752399855285098 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t1604752399855285098 -> -2974947399862450098 [id=\"1503188694666229145.args[1]\"]\n\t-2974947399862450098 [label=\"Abstraction.create\" id=8972369975130776289]\n\t-2974947399862450098 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t-2974947399862450098 -> 1687986881092766184 [id=\"8972369975130776289.args[1]\"]\n\t1687986881092766184 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1687986881092766184 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1687986881092766184 -> 962989529247964034 [id=\"-1500747919639408199.args[1]\"]\n\t962989529247964034 [label=\"Abstraction.create\" id=2193892090084648025]\n\t962989529247964034 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t962989529247964034 -> 6099022499168263336 [id=\"2193892090084648025.args[1]\"]\n\t6099022499168263336 [label=\"Boolean.if_\" id=6099022499168263336]\n\t6099022499168263336 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t6099022499168263336 -> 3918164425348840515 [id=\"6099022499168263336.args[1]\"]\n\t3918164425348840515 [label=\"FunctionThree.__call__\" id=3918164425348840515]\n\t3918164425348840515 -> 5273669542542420348 [id=\"3918164425348840515.args[0]\"]\n\t5273669542542420348 [label=\"FunctionThree.create\" id=5273669542542420348]\n\t5273669542542420348 -> -2416744201801222842 [id=\"5273669542542420348.args[0]\"]\n\t5273669542542420348 -> -2218404699472089453 [id=\"5273669542542420348.args[1]\"]\n\t3918164425348840515 -> -2010475523332315978 [id=\"3918164425348840515.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t3918164425348840515 -> 1963673822784011260 [id=\"3918164425348840515.args[2]\"]\n\t3918164425348840515 -> -3676002535650134703 [id=\"3918164425348840515.args[3]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t6099022499168263336 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t4271036976135164429 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t4271036976135164429 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t4271036976135164429 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t4956368705773594650 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t4956368705773594650 -> 3715864845822236104 [id=\"6856276731336713150.args[0]\"]\n\t3715864845822236104 [label=\"Pair.left\" id=7108997176786111947]\n\t3715864845822236104 -> 3542320105307783559 [id=\"7108997176786111947.args[0]\"]\n\t3542320105307783559 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t3542320105307783559 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t3542320105307783559 -> 9806125132565529 [id=\"4626752930784986669.args[1]\"]\n\t9806125132565529 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t9806125132565529 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t9806125132565529 -> 5337637645072033610 [id=\"5623947456069685973.args[1]\"]\n\t5337637645072033610 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t5337637645072033610 -> 5265539021190779987 [id=\"-6088525062024978323.args[0]\"]\n\t5265539021190779987 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t5265539021190779987 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t5265539021190779987 -> -7674324248979668855 [id=\"-9012227333621399175.args[1]\"]\n\t-7674324248979668855 [label=\"Abstraction.create\" id=-5676828982477546559]\n\t-7674324248979668855 -> -1256443561400883925 [id=\"-5676828982477546559.args[0]\"]\n\t-1256443561400883925 [label=\"Abstraction.create_variable\" id=-1256443561400883925]\n\t-1256443561400883925 -> 8491250713645872490 [id=\"-1256443561400883925.args[0]\"]\n\t8491250713645872490 [label=\"Variable(4693978192)\" id=8491250713645872490]\n\t-7674324248979668855 -> -3794121229660499577 [id=\"-5676828982477546559.args[1]\"]\n\t-3794121229660499577 [label=\"Abstraction.create\" id=-5004895946799091351]\n\t-3794121229660499577 -> -2851711366118638850 [id=\"-5004895946799091351.args[0]\"]\n\t-2851711366118638850 [label=\"Abstraction.create_variable\" id=-2851711366118638850]\n\t-2851711366118638850 -> -732121308697655693 [id=\"-2851711366118638850.args[0]\"]\n\t-732121308697655693 [label=\"Variable(4693796456)\" id=-732121308697655693]\n\t-3794121229660499577 -> 2178573689695233995 [id=\"-5004895946799091351.args[1]\"]\n\t2178573689695233995 [label=\"Abstraction.create\" id=-1204073473483278343]\n\t2178573689695233995 -> 6538013570818597808 [id=\"-1204073473483278343.args[0]\"]\n\t6538013570818597808 [label=\"Abstraction.create_variable\" id=6538013570818597808]\n\t6538013570818597808 -> 8491250716916180515 [id=\"6538013570818597808.args[0]\"]\n\t8491250716916180515 [label=\"Variable(4693897056)\" id=8491250716916180515]\n\t2178573689695233995 -> -3346905352135425808 [id=\"-1204073473483278343.args[1]\"]\n\t-3346905352135425808 [label=\"Boolean.if_\" id=-3346905352135425808]\n\t-3346905352135425808 -> 5533983751828955784 [id=\"-3346905352135425808.args[0]\"]\n\t5533983751828955784 [label=\"Integer.__gt__\" id=5533983751828955784]\n\t5533983751828955784 -> -1256443561400883925 [id=\"5533983751828955784.args[0]\"]\n\t5533983751828955784 -> 6325146951033901350 [id=\"5533983751828955784.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t-3346905352135425808 -> -2852784026524406801 [id=\"-3346905352135425808.args[1]\"]\n\t-2852784026524406801 [label=\"FunctionThree.__call__\" id=-2852784026524406801]\n\t-2852784026524406801 -> -3551493808640946932 [id=\"-2852784026524406801.args[0]\"]\n\t-3551493808640946932 [label=\"FunctionThree.create\" id=-3551493808640946932]\n\t-3551493808640946932 -> -2416744201801222842 [id=\"-3551493808640946932.args[0]\"]\n\t-3551493808640946932 -> 3686831515708517186 [id=\"-3551493808640946932.args[1]\"]\n\t-2852784026524406801 -> 5479575004185676687 [id=\"-2852784026524406801.args[1]\"]\n\t5479575004185676687 [label=\"Integer.__sub__\" id=5479575004185676687]\n\t5479575004185676687 -> -1256443561400883925 [id=\"5479575004185676687.args[0]\"]\n\t5479575004185676687 -> 6325146951033901350 [id=\"5479575004185676687.args[1]\"]\n\t-2852784026524406801 -> 6538013570818597808 [id=\"-2852784026524406801.args[2]\"]\n\t-2852784026524406801 -> 7827400091205757843 [id=\"-2852784026524406801.args[3]\"]\n\t7827400091205757843 [label=\"Integer.__add__\" id=7827400091205757843]\n\t7827400091205757843 -> -2851711366118638850 [id=\"7827400091205757843.args[0]\"]\n\t7827400091205757843 -> 6538013570818597808 [id=\"7827400091205757843.args[1]\"]\n\t-3346905352135425808 -> 6479971903414758433 [id=\"-3346905352135425808.args[2]\"]\n\t6479971903414758433 [label=\"Boolean.if_\" id=6479971903414758433]\n\t6479971903414758433 -> 3701848267033676582 [id=\"6479971903414758433.args[0]\"]\n\t3701848267033676582 [label=\"Integer.eq\" id=3701848267033676582]\n\t3701848267033676582 -> -1256443561400883925 [id=\"3701848267033676582.args[0]\"]\n\t3701848267033676582 -> 6325146951033901350 [id=\"3701848267033676582.args[1]\"]\n\t6479971903414758433 -> 6538013570818597808 [id=\"6479971903414758433.args[1]\"]\n\t6479971903414758433 -> -2851711366118638850 [id=\"6479971903414758433.args[2]\"]\n\t4956368705773594650 -> -7942013740372488676 [id=\"6856276731336713150.args[1]\"]\n\t-7942013740372488676 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-7942013740372488676 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-7942013740372488676 -> 4210816321380885404 [id=\"8722543692205951913.args[1]\"]\n\t4210816321380885404 [label=\"Abstraction.create\" id=6261526295775775673]\n\t4210816321380885404 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t4210816321380885404 -> 4271036976135164429 [id=\"6261526295775775673.args[1]\"]\n\t4271036976135164429 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t4271036976135164429 -> -5356085944341333606 [id=\"7220818836429339286.args[0]\"]\n\t-5356085944341333606 [label=\"Pair.right\" id=1524023298192473829]\n\t-5356085944341333606 -> -4680000350632046801 [id=\"1524023298192473829.args[0]\"]\n\t-4680000350632046801 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-4680000350632046801 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-4680000350632046801 -> 271414626174357713 [id=\"9035282438128528067.args[1]\"]\n\t271414626174357713 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t271414626174357713 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t271414626174357713 -> 7474717735547262305 [id=\"4615692901985549771.args[1]\"]\n\t7474717735547262305 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t7474717735547262305 -> 1604752399855285098 [id=\"-2616231968178105026.args[0]\"]\n\t1604752399855285098 [label=\"Abstraction.create\" id=1503188694666229145]\n\t1604752399855285098 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t1604752399855285098 -> -2974947399862450098 [id=\"1503188694666229145.args[1]\"]\n\t-2974947399862450098 [label=\"Abstraction.create\" id=8972369975130776289]\n\t-2974947399862450098 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t-2974947399862450098 -> 1687986881092766184 [id=\"8972369975130776289.args[1]\"]\n\t1687986881092766184 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1687986881092766184 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1687986881092766184 -> 962989529247964034 [id=\"-1500747919639408199.args[1]\"]\n\t962989529247964034 [label=\"Abstraction.create\" id=2193892090084648025]\n\t962989529247964034 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t962989529247964034 -> 6099022499168263336 [id=\"2193892090084648025.args[1]\"]\n\t6099022499168263336 [label=\"Boolean.if_\" id=6099022499168263336]\n\t6099022499168263336 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t6099022499168263336 -> 3918164425348840515 [id=\"6099022499168263336.args[1]\"]\n\t3918164425348840515 [label=\"FunctionThree.__call__\" id=3918164425348840515]\n\t3918164425348840515 -> 5273669542542420348 [id=\"3918164425348840515.args[0]\"]\n\t5273669542542420348 [label=\"FunctionThree.create\" id=5273669542542420348]\n\t5273669542542420348 -> -2416744201801222842 [id=\"5273669542542420348.args[0]\"]\n\t5273669542542420348 -> -2218404699472089453 [id=\"5273669542542420348.args[1]\"]\n\t3918164425348840515 -> -2010475523332315978 [id=\"3918164425348840515.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t3918164425348840515 -> 1963673822784011260 [id=\"3918164425348840515.args[2]\"]\n\t3918164425348840515 -> -3676002535650134703 [id=\"3918164425348840515.args[3]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t6099022499168263336 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t4271036976135164429 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t4271036976135164429 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t4271036976135164429 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-3978392646477205804 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t-3978392646477205804 -> 3715864845822236104 [id=\"6856276731336713150.args[0]\"]\n\t3715864845822236104 [label=\"Pair.left\" id=7108997176786111947]\n\t3715864845822236104 -> 3542320105307783559 [id=\"7108997176786111947.args[0]\"]\n\t3542320105307783559 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t3542320105307783559 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t3542320105307783559 -> 9806125132565529 [id=\"4626752930784986669.args[1]\"]\n\t9806125132565529 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t9806125132565529 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t9806125132565529 -> 5337637645072033610 [id=\"5623947456069685973.args[1]\"]\n\t5337637645072033610 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t5337637645072033610 -> 5265539021190779987 [id=\"-6088525062024978323.args[0]\"]\n\t5265539021190779987 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t5265539021190779987 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t5265539021190779987 -> -7674324248979668855 [id=\"-9012227333621399175.args[1]\"]\n\t-7674324248979668855 [label=\"Abstraction.create\" id=-5676828982477546559]\n\t-7674324248979668855 -> -1256443561400883925 [id=\"-5676828982477546559.args[0]\"]\n\t-1256443561400883925 [label=\"Abstraction.create_variable\" id=-1256443561400883925]\n\t-1256443561400883925 -> 8491250713645872490 [id=\"-1256443561400883925.args[0]\"]\n\t8491250713645872490 [label=\"Variable(4693978192)\" id=8491250713645872490]\n\t-7674324248979668855 -> -3794121229660499577 [id=\"-5676828982477546559.args[1]\"]\n\t-3794121229660499577 [label=\"Abstraction.create\" id=-5004895946799091351]\n\t-3794121229660499577 -> -2851711366118638850 [id=\"-5004895946799091351.args[0]\"]\n\t-2851711366118638850 [label=\"Abstraction.create_variable\" id=-2851711366118638850]\n\t-2851711366118638850 -> -732121308697655693 [id=\"-2851711366118638850.args[0]\"]\n\t-732121308697655693 [label=\"Variable(4693796456)\" id=-732121308697655693]\n\t-3794121229660499577 -> 2178573689695233995 [id=\"-5004895946799091351.args[1]\"]\n\t2178573689695233995 [label=\"Abstraction.create\" id=-1204073473483278343]\n\t2178573689695233995 -> 6538013570818597808 [id=\"-1204073473483278343.args[0]\"]\n\t6538013570818597808 [label=\"Abstraction.create_variable\" id=6538013570818597808]\n\t6538013570818597808 -> 8491250716916180515 [id=\"6538013570818597808.args[0]\"]\n\t8491250716916180515 [label=\"Variable(4693897056)\" id=8491250716916180515]\n\t2178573689695233995 -> -3346905352135425808 [id=\"-1204073473483278343.args[1]\"]\n\t-3346905352135425808 [label=\"Boolean.if_\" id=-3346905352135425808]\n\t-3346905352135425808 -> 5533983751828955784 [id=\"-3346905352135425808.args[0]\"]\n\t5533983751828955784 [label=\"Integer.__gt__\" id=5533983751828955784]\n\t5533983751828955784 -> -1256443561400883925 [id=\"5533983751828955784.args[0]\"]\n\t5533983751828955784 -> 6325146951033901350 [id=\"5533983751828955784.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t-3346905352135425808 -> -2852784026524406801 [id=\"-3346905352135425808.args[1]\"]\n\t-2852784026524406801 [label=\"FunctionThree.__call__\" id=-2852784026524406801]\n\t-2852784026524406801 -> -3551493808640946932 [id=\"-2852784026524406801.args[0]\"]\n\t-3551493808640946932 [label=\"FunctionThree.create\" id=-3551493808640946932]\n\t-3551493808640946932 -> -2416744201801222842 [id=\"-3551493808640946932.args[0]\"]\n\t-3551493808640946932 -> 3686831515708517186 [id=\"-3551493808640946932.args[1]\"]\n\t-2852784026524406801 -> 5479575004185676687 [id=\"-2852784026524406801.args[1]\"]\n\t5479575004185676687 [label=\"Integer.__sub__\" id=5479575004185676687]\n\t5479575004185676687 -> -1256443561400883925 [id=\"5479575004185676687.args[0]\"]\n\t5479575004185676687 -> 6325146951033901350 [id=\"5479575004185676687.args[1]\"]\n\t-2852784026524406801 -> 6538013570818597808 [id=\"-2852784026524406801.args[2]\"]\n\t-2852784026524406801 -> 7827400091205757843 [id=\"-2852784026524406801.args[3]\"]\n\t7827400091205757843 [label=\"Integer.__add__\" id=7827400091205757843]\n\t7827400091205757843 -> -2851711366118638850 [id=\"7827400091205757843.args[0]\"]\n\t7827400091205757843 -> 6538013570818597808 [id=\"7827400091205757843.args[1]\"]\n\t-3346905352135425808 -> 6479971903414758433 [id=\"-3346905352135425808.args[2]\"]\n\t6479971903414758433 [label=\"Boolean.if_\" id=6479971903414758433]\n\t6479971903414758433 -> 3701848267033676582 [id=\"6479971903414758433.args[0]\"]\n\t3701848267033676582 [label=\"Integer.eq\" id=3701848267033676582]\n\t3701848267033676582 -> -1256443561400883925 [id=\"3701848267033676582.args[0]\"]\n\t3701848267033676582 -> 6325146951033901350 [id=\"3701848267033676582.args[1]\"]\n\t6479971903414758433 -> 6538013570818597808 [id=\"6479971903414758433.args[1]\"]\n\t6479971903414758433 -> -2851711366118638850 [id=\"6479971903414758433.args[2]\"]\n\t-3978392646477205804 -> -6092409311600830619 [id=\"6856276731336713150.args[1]\"]\n\t-6092409311600830619 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-6092409311600830619 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-6092409311600830619 -> -8568649978119546315 [id=\"8722543692205951913.args[1]\"]\n\t-8568649978119546315 [label=\"Abstraction.create\" id=6261526295775775673]\n\t-8568649978119546315 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t-8568649978119546315 -> -2262351587145021755 [id=\"6261526295775775673.args[1]\"]\n\t-2262351587145021755 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t-2262351587145021755 -> -4592041343014302207 [id=\"7220818836429339286.args[0]\"]\n\t-4592041343014302207 [label=\"Pair.right\" id=1524023298192473829]\n\t-4592041343014302207 -> -3742044759655754861 [id=\"1524023298192473829.args[0]\"]\n\t-3742044759655754861 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-3742044759655754861 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-3742044759655754861 -> 1600314105688255389 [id=\"9035282438128528067.args[1]\"]\n\t1600314105688255389 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t1600314105688255389 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t1600314105688255389 -> 4290183482776733535 [id=\"4615692901985549771.args[1]\"]\n\t4290183482776733535 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t4290183482776733535 -> 880491815589452508 [id=\"-2616231968178105026.args[0]\"]\n\t880491815589452508 [label=\"Abstraction.create\" id=1503188694666229145]\n\t880491815589452508 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t880491815589452508 -> -39358014160072841 [id=\"1503188694666229145.args[1]\"]\n\t-39358014160072841 [label=\"Abstraction.create\" id=8972369975130776289]\n\t-39358014160072841 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t-39358014160072841 -> 8187349443881251148 [id=\"8972369975130776289.args[1]\"]\n\t8187349443881251148 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t8187349443881251148 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t8187349443881251148 -> -6404377335771370736 [id=\"-1500747919639408199.args[1]\"]\n\t-6404377335771370736 [label=\"Abstraction.create\" id=2193892090084648025]\n\t-6404377335771370736 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t-6404377335771370736 -> -4747665114687989666 [id=\"2193892090084648025.args[1]\"]\n\t-4747665114687989666 [label=\"Boolean.if_\" id=6099022499168263336]\n\t-4747665114687989666 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t-4747665114687989666 -> 7814178186524355439 [id=\"6099022499168263336.args[1]\"]\n\t7814178186524355439 [label=\"Abstraction.__call__\" id=3918164425348840515]\n\t7814178186524355439 -> -933147840307797687 [id=\"3918164425348840515.args[0]\"]\n\t-933147840307797687 [label=\"Abstraction.__call__\" id=-933147840307797687]\n\t-933147840307797687 -> 813800637616694484 [id=\"-933147840307797687.args[0]\"]\n\t813800637616694484 [label=\"Abstraction.__call__\" id=813800637616694484]\n\t813800637616694484 -> -8869922616258736873 [id=\"813800637616694484.args[0]\"]\n\t-8869922616258736873 [label=\"FunctionThree.abstraction\" id=-8869922616258736873]\n\t-8869922616258736873 -> 5273669542542420348 [id=\"-8869922616258736873.args[0]\"]\n\t5273669542542420348 [label=\"FunctionThree.create\" id=5273669542542420348]\n\t5273669542542420348 -> -2416744201801222842 [id=\"5273669542542420348.args[0]\"]\n\t5273669542542420348 -> -2218404699472089453 [id=\"5273669542542420348.args[1]\"]\n\t813800637616694484 -> -2010475523332315978 [id=\"813800637616694484.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t-933147840307797687 -> 1963673822784011260 [id=\"-933147840307797687.args[1]\"]\n\t7814178186524355439 -> -3676002535650134703 [id=\"3918164425348840515.args[1]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t-4747665114687989666 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t-2262351587145021755 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t-2262351587145021755 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t-2262351587145021755 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.function.three_call"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t361444152944097461 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t361444152944097461 -> 3715864845822236104 [id=\"6856276731336713150.args[0]\"]\n\t3715864845822236104 [label=\"Pair.left\" id=7108997176786111947]\n\t3715864845822236104 -> 3542320105307783559 [id=\"7108997176786111947.args[0]\"]\n\t3542320105307783559 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t3542320105307783559 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t3542320105307783559 -> 9806125132565529 [id=\"4626752930784986669.args[1]\"]\n\t9806125132565529 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t9806125132565529 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t9806125132565529 -> 5337637645072033610 [id=\"5623947456069685973.args[1]\"]\n\t5337637645072033610 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t5337637645072033610 -> 5265539021190779987 [id=\"-6088525062024978323.args[0]\"]\n\t5265539021190779987 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t5265539021190779987 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t5265539021190779987 -> -7674324248979668855 [id=\"-9012227333621399175.args[1]\"]\n\t-7674324248979668855 [label=\"Abstraction.create\" id=-5676828982477546559]\n\t-7674324248979668855 -> -1256443561400883925 [id=\"-5676828982477546559.args[0]\"]\n\t-1256443561400883925 [label=\"Abstraction.create_variable\" id=-1256443561400883925]\n\t-1256443561400883925 -> 8491250713645872490 [id=\"-1256443561400883925.args[0]\"]\n\t8491250713645872490 [label=\"Variable(4693978192)\" id=8491250713645872490]\n\t-7674324248979668855 -> -3794121229660499577 [id=\"-5676828982477546559.args[1]\"]\n\t-3794121229660499577 [label=\"Abstraction.create\" id=-5004895946799091351]\n\t-3794121229660499577 -> -2851711366118638850 [id=\"-5004895946799091351.args[0]\"]\n\t-2851711366118638850 [label=\"Abstraction.create_variable\" id=-2851711366118638850]\n\t-2851711366118638850 -> -732121308697655693 [id=\"-2851711366118638850.args[0]\"]\n\t-732121308697655693 [label=\"Variable(4693796456)\" id=-732121308697655693]\n\t-3794121229660499577 -> 2178573689695233995 [id=\"-5004895946799091351.args[1]\"]\n\t2178573689695233995 [label=\"Abstraction.create\" id=-1204073473483278343]\n\t2178573689695233995 -> 6538013570818597808 [id=\"-1204073473483278343.args[0]\"]\n\t6538013570818597808 [label=\"Abstraction.create_variable\" id=6538013570818597808]\n\t6538013570818597808 -> 8491250716916180515 [id=\"6538013570818597808.args[0]\"]\n\t8491250716916180515 [label=\"Variable(4693897056)\" id=8491250716916180515]\n\t2178573689695233995 -> -3346905352135425808 [id=\"-1204073473483278343.args[1]\"]\n\t-3346905352135425808 [label=\"Boolean.if_\" id=-3346905352135425808]\n\t-3346905352135425808 -> 5533983751828955784 [id=\"-3346905352135425808.args[0]\"]\n\t5533983751828955784 [label=\"Integer.__gt__\" id=5533983751828955784]\n\t5533983751828955784 -> -1256443561400883925 [id=\"5533983751828955784.args[0]\"]\n\t5533983751828955784 -> 6325146951033901350 [id=\"5533983751828955784.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t-3346905352135425808 -> -2852784026524406801 [id=\"-3346905352135425808.args[1]\"]\n\t-2852784026524406801 [label=\"FunctionThree.__call__\" id=-2852784026524406801]\n\t-2852784026524406801 -> -3551493808640946932 [id=\"-2852784026524406801.args[0]\"]\n\t-3551493808640946932 [label=\"FunctionThree.create\" id=-3551493808640946932]\n\t-3551493808640946932 -> -2416744201801222842 [id=\"-3551493808640946932.args[0]\"]\n\t-3551493808640946932 -> 3686831515708517186 [id=\"-3551493808640946932.args[1]\"]\n\t-2852784026524406801 -> 5479575004185676687 [id=\"-2852784026524406801.args[1]\"]\n\t5479575004185676687 [label=\"Integer.__sub__\" id=5479575004185676687]\n\t5479575004185676687 -> -1256443561400883925 [id=\"5479575004185676687.args[0]\"]\n\t5479575004185676687 -> 6325146951033901350 [id=\"5479575004185676687.args[1]\"]\n\t-2852784026524406801 -> 6538013570818597808 [id=\"-2852784026524406801.args[2]\"]\n\t-2852784026524406801 -> 7827400091205757843 [id=\"-2852784026524406801.args[3]\"]\n\t7827400091205757843 [label=\"Integer.__add__\" id=7827400091205757843]\n\t7827400091205757843 -> -2851711366118638850 [id=\"7827400091205757843.args[0]\"]\n\t7827400091205757843 -> 6538013570818597808 [id=\"7827400091205757843.args[1]\"]\n\t-3346905352135425808 -> 6479971903414758433 [id=\"-3346905352135425808.args[2]\"]\n\t6479971903414758433 [label=\"Boolean.if_\" id=6479971903414758433]\n\t6479971903414758433 -> 3701848267033676582 [id=\"6479971903414758433.args[0]\"]\n\t3701848267033676582 [label=\"Integer.eq\" id=3701848267033676582]\n\t3701848267033676582 -> -1256443561400883925 [id=\"3701848267033676582.args[0]\"]\n\t3701848267033676582 -> 6325146951033901350 [id=\"3701848267033676582.args[1]\"]\n\t6479971903414758433 -> 6538013570818597808 [id=\"6479971903414758433.args[1]\"]\n\t6479971903414758433 -> -2851711366118638850 [id=\"6479971903414758433.args[2]\"]\n\t361444152944097461 -> -6880133917432089086 [id=\"6856276731336713150.args[1]\"]\n\t-6880133917432089086 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-6880133917432089086 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-6880133917432089086 -> -1103485620982286201 [id=\"8722543692205951913.args[1]\"]\n\t-1103485620982286201 [label=\"Abstraction.create\" id=6261526295775775673]\n\t-1103485620982286201 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t-1103485620982286201 -> -7328125070462657134 [id=\"6261526295775775673.args[1]\"]\n\t-7328125070462657134 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t-7328125070462657134 -> -8308460306953947084 [id=\"7220818836429339286.args[0]\"]\n\t-8308460306953947084 [label=\"Pair.right\" id=1524023298192473829]\n\t-8308460306953947084 -> -1961898576601162173 [id=\"1524023298192473829.args[0]\"]\n\t-1961898576601162173 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-1961898576601162173 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-1961898576601162173 -> 5531380902039500107 [id=\"9035282438128528067.args[1]\"]\n\t5531380902039500107 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t5531380902039500107 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t5531380902039500107 -> 6423546443713427284 [id=\"4615692901985549771.args[1]\"]\n\t6423546443713427284 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t6423546443713427284 -> 6743160913950424153 [id=\"-2616231968178105026.args[0]\"]\n\t6743160913950424153 [label=\"Abstraction.create\" id=1503188694666229145]\n\t6743160913950424153 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t6743160913950424153 -> 2907869782943534867 [id=\"1503188694666229145.args[1]\"]\n\t2907869782943534867 [label=\"Abstraction.create\" id=8972369975130776289]\n\t2907869782943534867 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t2907869782943534867 -> 1109744608222471603 [id=\"8972369975130776289.args[1]\"]\n\t1109744608222471603 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1109744608222471603 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1109744608222471603 -> -1596029074047881709 [id=\"-1500747919639408199.args[1]\"]\n\t-1596029074047881709 [label=\"Abstraction.create\" id=2193892090084648025]\n\t-1596029074047881709 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t-1596029074047881709 -> -9146619245350571144 [id=\"2193892090084648025.args[1]\"]\n\t-9146619245350571144 [label=\"Boolean.if_\" id=6099022499168263336]\n\t-9146619245350571144 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t-9146619245350571144 -> 6869091480187158002 [id=\"6099022499168263336.args[1]\"]\n\t6869091480187158002 [label=\"Abstraction.__call__\" id=3918164425348840515]\n\t6869091480187158002 -> 6116642849638404418 [id=\"3918164425348840515.args[0]\"]\n\t6116642849638404418 [label=\"Abstraction.__call__\" id=-933147840307797687]\n\t6116642849638404418 -> 1158225584276799855 [id=\"-933147840307797687.args[0]\"]\n\t1158225584276799855 [label=\"Abstraction.__call__\" id=813800637616694484]\n\t1158225584276799855 -> -2218404699472089453 [id=\"813800637616694484.args[0]\"]\n\t1158225584276799855 -> -2010475523332315978 [id=\"813800637616694484.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t6116642849638404418 -> 1963673822784011260 [id=\"-933147840307797687.args[1]\"]\n\t6869091480187158002 -> -3676002535650134703 [id=\"3918164425348840515.args[1]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t-9146619245350571144 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t-7328125070462657134 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t-7328125070462657134 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t-7328125070462657134 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.function.three_abstraction"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t504943505945954141 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t504943505945954141 -> 8403424637920052158 [id=\"6856276731336713150.args[0]\"]\n\t8403424637920052158 [label=\"Pair.left\" id=7108997176786111947]\n\t8403424637920052158 -> -4851325084541919240 [id=\"7108997176786111947.args[0]\"]\n\t-4851325084541919240 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t-4851325084541919240 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t-4851325084541919240 -> 3060273032549201351 [id=\"4626752930784986669.args[1]\"]\n\t3060273032549201351 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t3060273032549201351 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t3060273032549201351 -> 8081585524676436271 [id=\"5623947456069685973.args[1]\"]\n\t8081585524676436271 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t8081585524676436271 -> -5019137516813892370 [id=\"-6088525062024978323.args[0]\"]\n\t-5019137516813892370 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t-5019137516813892370 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t-5019137516813892370 -> 7463117423714826542 [id=\"-9012227333621399175.args[1]\"]\n\t7463117423714826542 [label=\"Abstraction.create\" id=-5676828982477546559]\n\t7463117423714826542 -> -1256443561400883925 [id=\"-5676828982477546559.args[0]\"]\n\t-1256443561400883925 [label=\"Abstraction.create_variable\" id=-1256443561400883925]\n\t-1256443561400883925 -> 8491250713645872490 [id=\"-1256443561400883925.args[0]\"]\n\t8491250713645872490 [label=\"Variable(4693978192)\" id=8491250713645872490]\n\t7463117423714826542 -> -3330010245231333408 [id=\"-5676828982477546559.args[1]\"]\n\t-3330010245231333408 [label=\"Abstraction.create\" id=-5004895946799091351]\n\t-3330010245231333408 -> -2851711366118638850 [id=\"-5004895946799091351.args[0]\"]\n\t-2851711366118638850 [label=\"Abstraction.create_variable\" id=-2851711366118638850]\n\t-2851711366118638850 -> -732121308697655693 [id=\"-2851711366118638850.args[0]\"]\n\t-732121308697655693 [label=\"Variable(4693796456)\" id=-732121308697655693]\n\t-3330010245231333408 -> 8189062730614172955 [id=\"-5004895946799091351.args[1]\"]\n\t8189062730614172955 [label=\"Abstraction.create\" id=-1204073473483278343]\n\t8189062730614172955 -> 6538013570818597808 [id=\"-1204073473483278343.args[0]\"]\n\t6538013570818597808 [label=\"Abstraction.create_variable\" id=6538013570818597808]\n\t6538013570818597808 -> 8491250716916180515 [id=\"6538013570818597808.args[0]\"]\n\t8491250716916180515 [label=\"Variable(4693897056)\" id=8491250716916180515]\n\t8189062730614172955 -> -7475059708508343358 [id=\"-1204073473483278343.args[1]\"]\n\t-7475059708508343358 [label=\"Boolean.if_\" id=-3346905352135425808]\n\t-7475059708508343358 -> 5533983751828955784 [id=\"-3346905352135425808.args[0]\"]\n\t5533983751828955784 [label=\"Integer.__gt__\" id=5533983751828955784]\n\t5533983751828955784 -> -1256443561400883925 [id=\"5533983751828955784.args[0]\"]\n\t5533983751828955784 -> 6325146951033901350 [id=\"5533983751828955784.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t-7475059708508343358 -> -8691410319072797069 [id=\"-3346905352135425808.args[1]\"]\n\t-8691410319072797069 [label=\"Abstraction.__call__\" id=-2852784026524406801]\n\t-8691410319072797069 -> -7039190525139394778 [id=\"-2852784026524406801.args[0]\"]\n\t-7039190525139394778 [label=\"Abstraction.__call__\" id=-7039190525139394778]\n\t-7039190525139394778 -> 7536267128241918466 [id=\"-7039190525139394778.args[0]\"]\n\t7536267128241918466 [label=\"Abstraction.__call__\" id=7536267128241918466]\n\t7536267128241918466 -> -6972523730076414042 [id=\"7536267128241918466.args[0]\"]\n\t-6972523730076414042 [label=\"FunctionThree.abstraction\" id=-6972523730076414042]\n\t-6972523730076414042 -> -3551493808640946932 [id=\"-6972523730076414042.args[0]\"]\n\t-3551493808640946932 [label=\"FunctionThree.create\" id=-3551493808640946932]\n\t-3551493808640946932 -> -2416744201801222842 [id=\"-3551493808640946932.args[0]\"]\n\t-3551493808640946932 -> 3686831515708517186 [id=\"-3551493808640946932.args[1]\"]\n\t7536267128241918466 -> 5479575004185676687 [id=\"7536267128241918466.args[1]\"]\n\t5479575004185676687 [label=\"Integer.__sub__\" id=5479575004185676687]\n\t5479575004185676687 -> -1256443561400883925 [id=\"5479575004185676687.args[0]\"]\n\t5479575004185676687 -> 6325146951033901350 [id=\"5479575004185676687.args[1]\"]\n\t-7039190525139394778 -> 6538013570818597808 [id=\"-7039190525139394778.args[1]\"]\n\t-8691410319072797069 -> 7827400091205757843 [id=\"-2852784026524406801.args[1]\"]\n\t7827400091205757843 [label=\"Integer.__add__\" id=7827400091205757843]\n\t7827400091205757843 -> -2851711366118638850 [id=\"7827400091205757843.args[0]\"]\n\t7827400091205757843 -> 6538013570818597808 [id=\"7827400091205757843.args[1]\"]\n\t-7475059708508343358 -> 6479971903414758433 [id=\"-3346905352135425808.args[2]\"]\n\t6479971903414758433 [label=\"Boolean.if_\" id=6479971903414758433]\n\t6479971903414758433 -> 3701848267033676582 [id=\"6479971903414758433.args[0]\"]\n\t3701848267033676582 [label=\"Integer.eq\" id=3701848267033676582]\n\t3701848267033676582 -> -1256443561400883925 [id=\"3701848267033676582.args[0]\"]\n\t3701848267033676582 -> 6325146951033901350 [id=\"3701848267033676582.args[1]\"]\n\t6479971903414758433 -> 6538013570818597808 [id=\"6479971903414758433.args[1]\"]\n\t6479971903414758433 -> -2851711366118638850 [id=\"6479971903414758433.args[2]\"]\n\t504943505945954141 -> -6880133917432089086 [id=\"6856276731336713150.args[1]\"]\n\t-6880133917432089086 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-6880133917432089086 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-6880133917432089086 -> -1103485620982286201 [id=\"8722543692205951913.args[1]\"]\n\t-1103485620982286201 [label=\"Abstraction.create\" id=6261526295775775673]\n\t-1103485620982286201 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t-1103485620982286201 -> -7328125070462657134 [id=\"6261526295775775673.args[1]\"]\n\t-7328125070462657134 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t-7328125070462657134 -> -8308460306953947084 [id=\"7220818836429339286.args[0]\"]\n\t-8308460306953947084 [label=\"Pair.right\" id=1524023298192473829]\n\t-8308460306953947084 -> -1961898576601162173 [id=\"1524023298192473829.args[0]\"]\n\t-1961898576601162173 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-1961898576601162173 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-1961898576601162173 -> 5531380902039500107 [id=\"9035282438128528067.args[1]\"]\n\t5531380902039500107 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t5531380902039500107 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t5531380902039500107 -> 6423546443713427284 [id=\"4615692901985549771.args[1]\"]\n\t6423546443713427284 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t6423546443713427284 -> 6743160913950424153 [id=\"-2616231968178105026.args[0]\"]\n\t6743160913950424153 [label=\"Abstraction.create\" id=1503188694666229145]\n\t6743160913950424153 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t6743160913950424153 -> 2907869782943534867 [id=\"1503188694666229145.args[1]\"]\n\t2907869782943534867 [label=\"Abstraction.create\" id=8972369975130776289]\n\t2907869782943534867 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t2907869782943534867 -> 1109744608222471603 [id=\"8972369975130776289.args[1]\"]\n\t1109744608222471603 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1109744608222471603 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1109744608222471603 -> -1596029074047881709 [id=\"-1500747919639408199.args[1]\"]\n\t-1596029074047881709 [label=\"Abstraction.create\" id=2193892090084648025]\n\t-1596029074047881709 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t-1596029074047881709 -> -9146619245350571144 [id=\"2193892090084648025.args[1]\"]\n\t-9146619245350571144 [label=\"Boolean.if_\" id=6099022499168263336]\n\t-9146619245350571144 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t-9146619245350571144 -> 6869091480187158002 [id=\"6099022499168263336.args[1]\"]\n\t6869091480187158002 [label=\"Abstraction.__call__\" id=3918164425348840515]\n\t6869091480187158002 -> 6116642849638404418 [id=\"3918164425348840515.args[0]\"]\n\t6116642849638404418 [label=\"Abstraction.__call__\" id=-933147840307797687]\n\t6116642849638404418 -> 1158225584276799855 [id=\"-933147840307797687.args[0]\"]\n\t1158225584276799855 [label=\"Abstraction.__call__\" id=813800637616694484]\n\t1158225584276799855 -> -2218404699472089453 [id=\"813800637616694484.args[0]\"]\n\t1158225584276799855 -> -2010475523332315978 [id=\"813800637616694484.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t6116642849638404418 -> 1963673822784011260 [id=\"-933147840307797687.args[1]\"]\n\t6869091480187158002 -> -3676002535650134703 [id=\"3918164425348840515.args[1]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t-9146619245350571144 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t-7328125070462657134 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t-7328125070462657134 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t-7328125070462657134 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.function.three_call"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-5332641643694669743 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t-5332641643694669743 -> 6368059999428657147 [id=\"6856276731336713150.args[0]\"]\n\t6368059999428657147 [label=\"Pair.left\" id=7108997176786111947]\n\t6368059999428657147 -> -4092086257083142080 [id=\"7108997176786111947.args[0]\"]\n\t-4092086257083142080 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t-4092086257083142080 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t-4092086257083142080 -> -939301301305331488 [id=\"4626752930784986669.args[1]\"]\n\t-939301301305331488 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t-939301301305331488 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t-939301301305331488 -> -4304598581914280856 [id=\"5623947456069685973.args[1]\"]\n\t-4304598581914280856 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t-4304598581914280856 -> -3276991036306946112 [id=\"-6088525062024978323.args[0]\"]\n\t-3276991036306946112 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t-3276991036306946112 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t-3276991036306946112 -> 6863324329334168633 [id=\"-9012227333621399175.args[1]\"]\n\t6863324329334168633 [label=\"Abstraction.create\" id=-5676828982477546559]\n\t6863324329334168633 -> -1256443561400883925 [id=\"-5676828982477546559.args[0]\"]\n\t-1256443561400883925 [label=\"Abstraction.create_variable\" id=-1256443561400883925]\n\t-1256443561400883925 -> 8491250713645872490 [id=\"-1256443561400883925.args[0]\"]\n\t8491250713645872490 [label=\"Variable(4693978192)\" id=8491250713645872490]\n\t6863324329334168633 -> 5993236546128606356 [id=\"-5676828982477546559.args[1]\"]\n\t5993236546128606356 [label=\"Abstraction.create\" id=-5004895946799091351]\n\t5993236546128606356 -> -2851711366118638850 [id=\"-5004895946799091351.args[0]\"]\n\t-2851711366118638850 [label=\"Abstraction.create_variable\" id=-2851711366118638850]\n\t-2851711366118638850 -> -732121308697655693 [id=\"-2851711366118638850.args[0]\"]\n\t-732121308697655693 [label=\"Variable(4693796456)\" id=-732121308697655693]\n\t5993236546128606356 -> 6528268183171962768 [id=\"-5004895946799091351.args[1]\"]\n\t6528268183171962768 [label=\"Abstraction.create\" id=-1204073473483278343]\n\t6528268183171962768 -> 6538013570818597808 [id=\"-1204073473483278343.args[0]\"]\n\t6538013570818597808 [label=\"Abstraction.create_variable\" id=6538013570818597808]\n\t6538013570818597808 -> 8491250716916180515 [id=\"6538013570818597808.args[0]\"]\n\t8491250716916180515 [label=\"Variable(4693897056)\" id=8491250716916180515]\n\t6528268183171962768 -> -770073920009476210 [id=\"-1204073473483278343.args[1]\"]\n\t-770073920009476210 [label=\"Boolean.if_\" id=-3346905352135425808]\n\t-770073920009476210 -> 5533983751828955784 [id=\"-3346905352135425808.args[0]\"]\n\t5533983751828955784 [label=\"Integer.__gt__\" id=5533983751828955784]\n\t5533983751828955784 -> -1256443561400883925 [id=\"5533983751828955784.args[0]\"]\n\t5533983751828955784 -> 6325146951033901350 [id=\"5533983751828955784.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t-770073920009476210 -> -2356501649725275347 [id=\"-3346905352135425808.args[1]\"]\n\t-2356501649725275347 [label=\"Abstraction.__call__\" id=-2852784026524406801]\n\t-2356501649725275347 -> -7899468535260351664 [id=\"-2852784026524406801.args[0]\"]\n\t-7899468535260351664 [label=\"Abstraction.__call__\" id=-7039190525139394778]\n\t-7899468535260351664 -> 4318845609147373794 [id=\"-7039190525139394778.args[0]\"]\n\t4318845609147373794 [label=\"Abstraction.__call__\" id=7536267128241918466]\n\t4318845609147373794 -> 3686831515708517186 [id=\"7536267128241918466.args[0]\"]\n\t4318845609147373794 -> 5479575004185676687 [id=\"7536267128241918466.args[1]\"]\n\t5479575004185676687 [label=\"Integer.__sub__\" id=5479575004185676687]\n\t5479575004185676687 -> -1256443561400883925 [id=\"5479575004185676687.args[0]\"]\n\t5479575004185676687 -> 6325146951033901350 [id=\"5479575004185676687.args[1]\"]\n\t-7899468535260351664 -> 6538013570818597808 [id=\"-7039190525139394778.args[1]\"]\n\t-2356501649725275347 -> 7827400091205757843 [id=\"-2852784026524406801.args[1]\"]\n\t7827400091205757843 [label=\"Integer.__add__\" id=7827400091205757843]\n\t7827400091205757843 -> -2851711366118638850 [id=\"7827400091205757843.args[0]\"]\n\t7827400091205757843 -> 6538013570818597808 [id=\"7827400091205757843.args[1]\"]\n\t-770073920009476210 -> 6479971903414758433 [id=\"-3346905352135425808.args[2]\"]\n\t6479971903414758433 [label=\"Boolean.if_\" id=6479971903414758433]\n\t6479971903414758433 -> 3701848267033676582 [id=\"6479971903414758433.args[0]\"]\n\t3701848267033676582 [label=\"Integer.eq\" id=3701848267033676582]\n\t3701848267033676582 -> -1256443561400883925 [id=\"3701848267033676582.args[0]\"]\n\t3701848267033676582 -> 6325146951033901350 [id=\"3701848267033676582.args[1]\"]\n\t6479971903414758433 -> 6538013570818597808 [id=\"6479971903414758433.args[1]\"]\n\t6479971903414758433 -> -2851711366118638850 [id=\"6479971903414758433.args[2]\"]\n\t-5332641643694669743 -> -6880133917432089086 [id=\"6856276731336713150.args[1]\"]\n\t-6880133917432089086 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-6880133917432089086 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-6880133917432089086 -> -1103485620982286201 [id=\"8722543692205951913.args[1]\"]\n\t-1103485620982286201 [label=\"Abstraction.create\" id=6261526295775775673]\n\t-1103485620982286201 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t-1103485620982286201 -> -7328125070462657134 [id=\"6261526295775775673.args[1]\"]\n\t-7328125070462657134 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t-7328125070462657134 -> -8308460306953947084 [id=\"7220818836429339286.args[0]\"]\n\t-8308460306953947084 [label=\"Pair.right\" id=1524023298192473829]\n\t-8308460306953947084 -> -1961898576601162173 [id=\"1524023298192473829.args[0]\"]\n\t-1961898576601162173 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-1961898576601162173 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-1961898576601162173 -> 5531380902039500107 [id=\"9035282438128528067.args[1]\"]\n\t5531380902039500107 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t5531380902039500107 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t5531380902039500107 -> 6423546443713427284 [id=\"4615692901985549771.args[1]\"]\n\t6423546443713427284 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t6423546443713427284 -> 6743160913950424153 [id=\"-2616231968178105026.args[0]\"]\n\t6743160913950424153 [label=\"Abstraction.create\" id=1503188694666229145]\n\t6743160913950424153 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t6743160913950424153 -> 2907869782943534867 [id=\"1503188694666229145.args[1]\"]\n\t2907869782943534867 [label=\"Abstraction.create\" id=8972369975130776289]\n\t2907869782943534867 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t2907869782943534867 -> 1109744608222471603 [id=\"8972369975130776289.args[1]\"]\n\t1109744608222471603 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1109744608222471603 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1109744608222471603 -> -1596029074047881709 [id=\"-1500747919639408199.args[1]\"]\n\t-1596029074047881709 [label=\"Abstraction.create\" id=2193892090084648025]\n\t-1596029074047881709 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t-1596029074047881709 -> -9146619245350571144 [id=\"2193892090084648025.args[1]\"]\n\t-9146619245350571144 [label=\"Boolean.if_\" id=6099022499168263336]\n\t-9146619245350571144 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t-9146619245350571144 -> 6869091480187158002 [id=\"6099022499168263336.args[1]\"]\n\t6869091480187158002 [label=\"Abstraction.__call__\" id=3918164425348840515]\n\t6869091480187158002 -> 6116642849638404418 [id=\"3918164425348840515.args[0]\"]\n\t6116642849638404418 [label=\"Abstraction.__call__\" id=-933147840307797687]\n\t6116642849638404418 -> 1158225584276799855 [id=\"-933147840307797687.args[0]\"]\n\t1158225584276799855 [label=\"Abstraction.__call__\" id=813800637616694484]\n\t1158225584276799855 -> -2218404699472089453 [id=\"813800637616694484.args[0]\"]\n\t1158225584276799855 -> -2010475523332315978 [id=\"813800637616694484.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t6116642849638404418 -> 1963673822784011260 [id=\"-933147840307797687.args[1]\"]\n\t6869091480187158002 -> -3676002535650134703 [id=\"3918164425348840515.args[1]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t-9146619245350571144 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t-7328125070462657134 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t-7328125070462657134 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t-7328125070462657134 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.function.three_abstraction"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-5332641643694669743 [label=\"Module.register_function_one\" id=6856276731336713150]\n\t-5332641643694669743 -> 6368059999428657147 [id=\"6856276731336713150.args[0]\"]\n\t6368059999428657147 [label=\"Pair.left\" id=7108997176786111947]\n\t6368059999428657147 -> -4092086257083142080 [id=\"7108997176786111947.args[0]\"]\n\t-4092086257083142080 [label=\"Module.register_function_three\" id=4626752930784986669]\n\t-4092086257083142080 -> 382668138798061573 [id=\"4626752930784986669.args[0]\"]\n\t382668138798061573 [label=\"Module.create\" id=382668138798061573]\n\t382668138798061573 -> 7184931157588987335 [id=\"382668138798061573.args[0]\"]\n\t7184931157588987335 [label=\"'Main'\" id=7184931157588987335]\n\t-4092086257083142080 -> -939301301305331488 [id=\"4626752930784986669.args[1]\"]\n\t-939301301305331488 [label=\"FunctionThree.create\" id=5623947456069685973]\n\t-939301301305331488 -> -2416744201801222842 [id=\"5623947456069685973.args[0]\"]\n\t-2416744201801222842 [label=\"'fib_more'\" id=-2416744201801222842]\n\t-939301301305331488 -> -4304598581914280856 [id=\"5623947456069685973.args[1]\"]\n\t-4304598581914280856 [label=\"Abstraction.fix\" id=-6088525062024978323]\n\t-4304598581914280856 -> -3276991036306946112 [id=\"-6088525062024978323.args[0]\"]\n\t-3276991036306946112 [label=\"Abstraction.create\" id=-9012227333621399175]\n\t-3276991036306946112 -> 3686831515708517186 [id=\"-9012227333621399175.args[0]\"]\n\t3686831515708517186 [label=\"Abstraction.create_variable\" id=3686831515708517186]\n\t3686831515708517186 -> -732121319866066118 [id=\"3686831515708517186.args[0]\"]\n\t-732121319866066118 [label=\"Variable(4693893976)\" id=-732121319866066118]\n\t-3276991036306946112 -> 6863324329334168633 [id=\"-9012227333621399175.args[1]\"]\n\t6863324329334168633 [label=\"Abstraction.create\" id=-5676828982477546559]\n\t6863324329334168633 -> -1256443561400883925 [id=\"-5676828982477546559.args[0]\"]\n\t-1256443561400883925 [label=\"Abstraction.create_variable\" id=-1256443561400883925]\n\t-1256443561400883925 -> 8491250713645872490 [id=\"-1256443561400883925.args[0]\"]\n\t8491250713645872490 [label=\"Variable(4693978192)\" id=8491250713645872490]\n\t6863324329334168633 -> 5993236546128606356 [id=\"-5676828982477546559.args[1]\"]\n\t5993236546128606356 [label=\"Abstraction.create\" id=-5004895946799091351]\n\t5993236546128606356 -> -2851711366118638850 [id=\"-5004895946799091351.args[0]\"]\n\t-2851711366118638850 [label=\"Abstraction.create_variable\" id=-2851711366118638850]\n\t-2851711366118638850 -> -732121308697655693 [id=\"-2851711366118638850.args[0]\"]\n\t-732121308697655693 [label=\"Variable(4693796456)\" id=-732121308697655693]\n\t5993236546128606356 -> 6528268183171962768 [id=\"-5004895946799091351.args[1]\"]\n\t6528268183171962768 [label=\"Abstraction.create\" id=-1204073473483278343]\n\t6528268183171962768 -> 6538013570818597808 [id=\"-1204073473483278343.args[0]\"]\n\t6538013570818597808 [label=\"Abstraction.create_variable\" id=6538013570818597808]\n\t6538013570818597808 -> 8491250716916180515 [id=\"6538013570818597808.args[0]\"]\n\t8491250716916180515 [label=\"Variable(4693897056)\" id=8491250716916180515]\n\t6528268183171962768 -> -770073920009476210 [id=\"-1204073473483278343.args[1]\"]\n\t-770073920009476210 [label=\"Boolean.if_\" id=-3346905352135425808]\n\t-770073920009476210 -> 5533983751828955784 [id=\"-3346905352135425808.args[0]\"]\n\t5533983751828955784 [label=\"Integer.__gt__\" id=5533983751828955784]\n\t5533983751828955784 -> -1256443561400883925 [id=\"5533983751828955784.args[0]\"]\n\t5533983751828955784 -> 6325146951033901350 [id=\"5533983751828955784.args[1]\"]\n\t6325146951033901350 [label=\"Integer.from_int\" id=6325146951033901350]\n\t6325146951033901350 -> 6001312171390071600 [id=\"6325146951033901350.args[0]\"]\n\t6001312171390071600 [label=1 id=6001312171390071600]\n\t-770073920009476210 -> -2356501649725275347 [id=\"-3346905352135425808.args[1]\"]\n\t-2356501649725275347 [label=\"Abstraction.__call__\" id=-2852784026524406801]\n\t-2356501649725275347 -> -7899468535260351664 [id=\"-2852784026524406801.args[0]\"]\n\t-7899468535260351664 [label=\"Abstraction.__call__\" id=-7039190525139394778]\n\t-7899468535260351664 -> 4318845609147373794 [id=\"-7039190525139394778.args[0]\"]\n\t4318845609147373794 [label=\"Abstraction.__call__\" id=7536267128241918466]\n\t4318845609147373794 -> 3686831515708517186 [id=\"7536267128241918466.args[0]\"]\n\t4318845609147373794 -> 5479575004185676687 [id=\"7536267128241918466.args[1]\"]\n\t5479575004185676687 [label=\"Integer.__sub__\" id=5479575004185676687]\n\t5479575004185676687 -> -1256443561400883925 [id=\"5479575004185676687.args[0]\"]\n\t5479575004185676687 -> 6325146951033901350 [id=\"5479575004185676687.args[1]\"]\n\t-7899468535260351664 -> 6538013570818597808 [id=\"-7039190525139394778.args[1]\"]\n\t-2356501649725275347 -> 7827400091205757843 [id=\"-2852784026524406801.args[1]\"]\n\t7827400091205757843 [label=\"Integer.__add__\" id=7827400091205757843]\n\t7827400091205757843 -> -2851711366118638850 [id=\"7827400091205757843.args[0]\"]\n\t7827400091205757843 -> 6538013570818597808 [id=\"7827400091205757843.args[1]\"]\n\t-770073920009476210 -> 6479971903414758433 [id=\"-3346905352135425808.args[2]\"]\n\t6479971903414758433 [label=\"Boolean.if_\" id=6479971903414758433]\n\t6479971903414758433 -> 3701848267033676582 [id=\"6479971903414758433.args[0]\"]\n\t3701848267033676582 [label=\"Integer.eq\" id=3701848267033676582]\n\t3701848267033676582 -> -1256443561400883925 [id=\"3701848267033676582.args[0]\"]\n\t3701848267033676582 -> 6325146951033901350 [id=\"3701848267033676582.args[1]\"]\n\t6479971903414758433 -> 6538013570818597808 [id=\"6479971903414758433.args[1]\"]\n\t6479971903414758433 -> -2851711366118638850 [id=\"6479971903414758433.args[2]\"]\n\t-5332641643694669743 -> -6880133917432089086 [id=\"6856276731336713150.args[1]\"]\n\t-6880133917432089086 [label=\"FunctionOne.create\" id=8722543692205951913]\n\t-6880133917432089086 -> 4725913326772741315 [id=\"8722543692205951913.args[0]\"]\n\t4725913326772741315 [label=\"'fib'\" id=4725913326772741315]\n\t-6880133917432089086 -> -1103485620982286201 [id=\"8722543692205951913.args[1]\"]\n\t-1103485620982286201 [label=\"Abstraction.create\" id=6261526295775775673]\n\t-1103485620982286201 -> -3290865020609809785 [id=\"6261526295775775673.args[0]\"]\n\t-3290865020609809785 [label=\"Abstraction.create_variable\" id=-3290865020609809785]\n\t-3290865020609809785 -> 8491251180266108690 [id=\"-3290865020609809785.args[0]\"]\n\t8491251180266108690 [label=\"Variable(4693405648)\" id=8491251180266108690]\n\t-1103485620982286201 -> -7328125070462657134 [id=\"6261526295775775673.args[1]\"]\n\t-7328125070462657134 [label=\"RegisteredFunctionThree.__call__\" id=7220818836429339286]\n\t-7328125070462657134 -> -8308460306953947084 [id=\"7220818836429339286.args[0]\"]\n\t-8308460306953947084 [label=\"Pair.right\" id=1524023298192473829]\n\t-8308460306953947084 -> -1961898576601162173 [id=\"1524023298192473829.args[0]\"]\n\t-1961898576601162173 [label=\"Module.register_function_three\" id=9035282438128528067]\n\t-1961898576601162173 -> 382668138798061573 [id=\"9035282438128528067.args[0]\"]\n\t-1961898576601162173 -> 5531380902039500107 [id=\"9035282438128528067.args[1]\"]\n\t5531380902039500107 [label=\"FunctionThree.create\" id=4615692901985549771]\n\t5531380902039500107 -> -2416744201801222842 [id=\"4615692901985549771.args[0]\"]\n\t5531380902039500107 -> 6423546443713427284 [id=\"4615692901985549771.args[1]\"]\n\t6423546443713427284 [label=\"Abstraction.fix\" id=-2616231968178105026]\n\t6423546443713427284 -> 6743160913950424153 [id=\"-2616231968178105026.args[0]\"]\n\t6743160913950424153 [label=\"Abstraction.create\" id=1503188694666229145]\n\t6743160913950424153 -> -2218404699472089453 [id=\"1503188694666229145.args[0]\"]\n\t-2218404699472089453 [label=\"Abstraction.create_variable\" id=-2218404699472089453]\n\t-2218404699472089453 -> -732121295841588793 [id=\"-2218404699472089453.args[0]\"]\n\t-732121295841588793 [label=\"Variable(4693604392)\" id=-732121295841588793]\n\t6743160913950424153 -> 2907869782943534867 [id=\"1503188694666229145.args[1]\"]\n\t2907869782943534867 [label=\"Abstraction.create\" id=8972369975130776289]\n\t2907869782943534867 -> -808026620668746558 [id=\"8972369975130776289.args[0]\"]\n\t-808026620668746558 [label=\"Abstraction.create_variable\" id=-808026620668746558]\n\t-808026620668746558 -> 8491250738698748565 [id=\"-808026620668746558.args[0]\"]\n\t8491250738698748565 [label=\"Variable(4693673408)\" id=8491250738698748565]\n\t2907869782943534867 -> 1109744608222471603 [id=\"8972369975130776289.args[1]\"]\n\t1109744608222471603 [label=\"Abstraction.create\" id=-1500747919639408199]\n\t1109744608222471603 -> 5764714247852502735 [id=\"-1500747919639408199.args[0]\"]\n\t5764714247852502735 [label=\"Abstraction.create_variable\" id=5764714247852502735]\n\t5764714247852502735 -> -732121301822539418 [id=\"5764714247852502735.args[0]\"]\n\t-732121301822539418 [label=\"Variable(4693627288)\" id=-732121301822539418]\n\t1109744608222471603 -> -1596029074047881709 [id=\"-1500747919639408199.args[1]\"]\n\t-1596029074047881709 [label=\"Abstraction.create\" id=2193892090084648025]\n\t-1596029074047881709 -> 1963673822784011260 [id=\"2193892090084648025.args[0]\"]\n\t1963673822784011260 [label=\"Abstraction.create_variable\" id=1963673822784011260]\n\t1963673822784011260 -> -732121298250206918 [id=\"1963673822784011260.args[0]\"]\n\t-732121298250206918 [label=\"Variable(4693672792)\" id=-732121298250206918]\n\t-1596029074047881709 -> -9146619245350571144 [id=\"2193892090084648025.args[1]\"]\n\t-9146619245350571144 [label=\"Boolean.if_\" id=6099022499168263336]\n\t-9146619245350571144 -> 555335659624800737 [id=\"6099022499168263336.args[0]\"]\n\t555335659624800737 [label=\"Integer.__gt__\" id=555335659624800737]\n\t555335659624800737 -> -808026620668746558 [id=\"555335659624800737.args[0]\"]\n\t555335659624800737 -> 6325146951033901350 [id=\"555335659624800737.args[1]\"]\n\t-9146619245350571144 -> 6869091480187158002 [id=\"6099022499168263336.args[1]\"]\n\t6869091480187158002 [label=\"Abstraction.__call__\" id=3918164425348840515]\n\t6869091480187158002 -> 6116642849638404418 [id=\"3918164425348840515.args[0]\"]\n\t6116642849638404418 [label=\"Abstraction.__call__\" id=-933147840307797687]\n\t6116642849638404418 -> 1158225584276799855 [id=\"-933147840307797687.args[0]\"]\n\t1158225584276799855 [label=\"Abstraction.__call__\" id=813800637616694484]\n\t1158225584276799855 -> -2218404699472089453 [id=\"813800637616694484.args[0]\"]\n\t1158225584276799855 -> -2010475523332315978 [id=\"813800637616694484.args[1]\"]\n\t-2010475523332315978 [label=\"Integer.__sub__\" id=-2010475523332315978]\n\t-2010475523332315978 -> -808026620668746558 [id=\"-2010475523332315978.args[0]\"]\n\t-2010475523332315978 -> 6325146951033901350 [id=\"-2010475523332315978.args[1]\"]\n\t6116642849638404418 -> 1963673822784011260 [id=\"-933147840307797687.args[1]\"]\n\t6869091480187158002 -> -3676002535650134703 [id=\"3918164425348840515.args[1]\"]\n\t-3676002535650134703 [label=\"Integer.__add__\" id=-3676002535650134703]\n\t-3676002535650134703 -> 5764714247852502735 [id=\"-3676002535650134703.args[0]\"]\n\t-3676002535650134703 -> 1963673822784011260 [id=\"-3676002535650134703.args[1]\"]\n\t-9146619245350571144 -> 2385595039180881329 [id=\"6099022499168263336.args[2]\"]\n\t2385595039180881329 [label=\"Boolean.if_\" id=2385595039180881329]\n\t2385595039180881329 -> -4705489241148282369 [id=\"2385595039180881329.args[0]\"]\n\t-4705489241148282369 [label=\"Integer.eq\" id=-4705489241148282369]\n\t-4705489241148282369 -> -808026620668746558 [id=\"-4705489241148282369.args[0]\"]\n\t-4705489241148282369 -> 6325146951033901350 [id=\"-4705489241148282369.args[1]\"]\n\t2385595039180881329 -> 1963673822784011260 [id=\"2385595039180881329.args[1]\"]\n\t2385595039180881329 -> 5764714247852502735 [id=\"2385595039180881329.args[2]\"]\n\t-7328125070462657134 -> -3290865020609809785 [id=\"7220818836429339286.args[1]\"]\n\t-7328125070462657134 -> -3583216241042002267 [id=\"7220818836429339286.args[2]\"]\n\t-3583216241042002267 [label=\"Integer.from_int\" id=-3583216241042002267]\n\t-3583216241042002267 -> 6001312171388989075 [id=\"-3583216241042002267.args[0]\"]\n\t6001312171388989075 [label=0 id=6001312171388989075]\n\t-7328125070462657134 -> 6325146951033901350 [id=\"7220818836429339286.args[3]\"]\n}",
         "label": "core",
         "rule": ""
        }
       ]
      },
      "text/plain": [
       "Typez(definitions=None, nodes={'7184931157588987335': ['7184931157588987335', PrimitiveNode(type='str', repr=\"'Main'\")], '382668138798061573': ['382668138798061573', CallNode(function='Module.create', type_params=None, args=['7184931157588987335'], kwargs=None)], '-3221772017662409983': ['-3221772017662409983', PrimitiveNode(type='function', repr='<function fib_more at 0x10cf23b70>')], '5623947456069685973': ['5623947456069685973', CallNode(function='FunctionThree.from_fn_recursive', type_params=None, args=['-3221772017662409983'], kwargs=None)], '4626752930784986669': ['4626752930784986669', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '5623947456069685973'], kwargs=None)], '7108997176786111947': ['7108997176786111947', CallNode(function='Pair.left', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['4626752930784986669'], kwargs=None)], '6001600019183705625': ['6001600019183705625', PrimitiveNode(type='function', repr='<function fib at 0x10cf23bf8>')], '8722543692205951913': ['8722543692205951913', CallNode(function='FunctionOne.from_fn', type_params=None, args=['6001600019183705625'], kwargs=None)], '6856276731336713150': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['7108997176786111947', '8722543692205951913'], kwargs=None)], '4725913326772741315': ['4725913326772741315', PrimitiveNode(type='str', repr=\"'fib'\")], '7412632649493286515': ['7412632649493286515', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function fib at 0x10cf23bf8>, typevars={~T: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf77b8>)\")], '6261526295775775673': ['6261526295775775673', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412632649493286515'], kwargs=None)], '-7915888723707701402': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '6261526295775775673'], kwargs=None)], '5654953204440361295': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['7108997176786111947', '-7915888723707701402'], kwargs=None)], '8491251180266108690': ['8491251180266108690', PrimitiveNode(type='Variable', repr='Variable(4693405648)')], '-3290865020609809785': ['-3290865020609809785', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['8491251180266108690'], kwargs=None)], '7412625438300630115': ['7412625438300630115', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function fib_more at 0x10cf23b70>, typevars={~T: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7b70>)\")], '4615692901985549771': ['4615692901985549771', CallNode(function='FunctionThree.from_fn_recursive', type_params=None, args=['7412625438300630115'], kwargs=None)], '9035282438128528067': ['9035282438128528067', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '4615692901985549771'], kwargs=None)], '1524023298192473829': ['1524023298192473829', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['9035282438128528067'], kwargs=None)], '6001312171388989075': ['6001312171388989075', PrimitiveNode(type='int', repr='0')], '-3583216241042002267': ['-3583216241042002267', CallNode(function='Integer.from_int', type_params=None, args=['6001312171388989075'], kwargs=None)], '6001312171390071600': ['6001312171390071600', PrimitiveNode(type='int', repr='1')], '6325146951033901350': ['6325146951033901350', CallNode(function='Integer.from_int', type_params=None, args=['6001312171390071600'], kwargs=None)], '7220818836429339286': ['7220818836429339286', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['1524023298192473829', '-3290865020609809785', '-3583216241042002267', '6325146951033901350'], kwargs=None)], '-45428351763996943': ['6261526295775775673', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3290865020609809785', '7220818836429339286'], kwargs=None)], '1010594837940157392': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '-45428351763996943'], kwargs=None)], '6963002688607303346': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['7108997176786111947', '1010594837940157392'], kwargs=None)], '-2416744201801222842': ['-2416744201801222842', PrimitiveNode(type='str', repr=\"'fib_more'\")], '7412632538885212115': ['7412632538885212115', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner at 0x10cf420d0>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7d90>)\")], '1503188694666229145': ['1503188694666229145', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412632538885212115'], kwargs=None)], '-2616231968178105026': ['-2616231968178105026', CallNode(function='Abstraction.fix', type_params=None, args=['1503188694666229145'], kwargs=None)], '8404341556129260478': ['4615692901985549771', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '-2616231968178105026'], kwargs=None)], '-6838072510089444641': ['9035282438128528067', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '8404341556129260478'], kwargs=None)], '601616740275993098': ['1524023298192473829', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-6838072510089444641'], kwargs=None)], '-1443395813807034717': ['7220818836429339286', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['601616740275993098', '-3290865020609809785', '-3583216241042002267', '6325146951033901350'], kwargs=None)], '-4143833434479094413': ['6261526295775775673', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3290865020609809785', '-1443395813807034717'], kwargs=None)], '1153440509156381989': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '-4143833434479094413'], kwargs=None)], '1805265982070591545': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['7108997176786111947', '1153440509156381989'], kwargs=None)], '-732121295841588793': ['-732121295841588793', PrimitiveNode(type='Variable', repr='Variable(4693604392)')], '-2218404699472089453': ['-2218404699472089453', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-732121295841588793'], kwargs=None)], '7412632608954890315': ['7412632608954890315', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x117bf7730>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7ea0>)\")], '8972369975130776289': ['8972369975130776289', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412632608954890315'], kwargs=None)], '90871822513410697': ['1503188694666229145', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-2218404699472089453', '8972369975130776289'], kwargs=None)], '5414232390638848622': ['-2616231968178105026', CallNode(function='Abstraction.fix', type_params=None, args=['90871822513410697'], kwargs=None)], '-3914589061855157043': ['4615692901985549771', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '5414232390638848622'], kwargs=None)], '6926423155304698820': ['9035282438128528067', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '-3914589061855157043'], kwargs=None)], '6568632049537082536': ['1524023298192473829', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['6926423155304698820'], kwargs=None)], '6825170533652453955': ['7220818836429339286', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['6568632049537082536', '-3290865020609809785', '-3583216241042002267', '6325146951033901350'], kwargs=None)], '2745596852532900277': ['6261526295775775673', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3290865020609809785', '6825170533652453955'], kwargs=None)], '-3092924321317758663': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '2745596852532900277'], kwargs=None)], '-6332609585604097430': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['7108997176786111947', '-3092924321317758663'], kwargs=None)], '8491250738698748565': ['8491250738698748565', PrimitiveNode(type='Variable', repr='Variable(4693673408)')], '-808026620668746558': ['-808026620668746558', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['8491250738698748565'], kwargs=None)], '7412632542522496115': ['7412632542522496115', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x117bf7d90>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf79d8>)\")], '-1500747919639408199': ['-1500747919639408199', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412632542522496115'], kwargs=None)], '-7084901351516393663': ['8972369975130776289', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-808026620668746558', '-1500747919639408199'], kwargs=None)], '1490821829957485115': ['1503188694666229145', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-2218404699472089453', '-7084901351516393663'], kwargs=None)], '-7047487661644010508': ['-2616231968178105026', CallNode(function='Abstraction.fix', type_params=None, args=['1490821829957485115'], kwargs=None)], '-3938349888668918862': ['4615692901985549771', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '-7047487661644010508'], kwargs=None)], '8516094059202496079': ['9035282438128528067', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '-3938349888668918862'], kwargs=None)], '-7281935149975180479': ['1524023298192473829', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['8516094059202496079'], kwargs=None)], '-5713417871866583945': ['7220818836429339286', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-7281935149975180479', '-3290865020609809785', '-3583216241042002267', '6325146951033901350'], kwargs=None)], '7118239093530523877': ['6261526295775775673', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3290865020609809785', '-5713417871866583945'], kwargs=None)], '7503727616651843303': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '7118239093530523877'], kwargs=None)], '1290740132143854684': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['7108997176786111947', '7503727616651843303'], kwargs=None)], '-732121301822539418': ['-732121301822539418', PrimitiveNode(type='Variable', repr='Variable(4693627288)')], '5764714247852502735': ['5764714247852502735', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-732121301822539418'], kwargs=None)], '7412633025588452115': ['7412633025588452115', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x117bf7ea0>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7620>)\")], '2193892090084648025': ['2193892090084648025', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412633025588452115'], kwargs=None)], '8967542854824113341': ['-1500747919639408199', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['5764714247852502735', '2193892090084648025'], kwargs=None)], '3408071583970995350': ['8972369975130776289', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-808026620668746558', '8967542854824113341'], kwargs=None)], '1151106901067544956': ['1503188694666229145', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-2218404699472089453', '3408071583970995350'], kwargs=None)], '2419193387387549503': ['-2616231968178105026', CallNode(function='Abstraction.fix', type_params=None, args=['1151106901067544956'], kwargs=None)], '-5336534128346101251': ['4615692901985549771', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '2419193387387549503'], kwargs=None)], '548738157770213529': ['9035282438128528067', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '-5336534128346101251'], kwargs=None)], '-1714617617501617066': ['1524023298192473829', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['548738157770213529'], kwargs=None)], '3679952967203657599': ['7220818836429339286', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1714617617501617066', '-3290865020609809785', '-3583216241042002267', '6325146951033901350'], kwargs=None)], '-4207933847189016290': ['6261526295775775673', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3290865020609809785', '3679952967203657599'], kwargs=None)], '190925817868034716': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '-4207933847189016290'], kwargs=None)], '-7294472008854822226': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['7108997176786111947', '190925817868034716'], kwargs=None)], '-732121298250206918': ['-732121298250206918', PrimitiveNode(type='Variable', repr='Variable(4693672792)')], '1963673822784011260': ['1963673822784011260', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-732121298250206918'], kwargs=None)], '555335659624800737': ['555335659624800737', CallNode(function='Integer.__gt__', type_params=None, args=['-808026620668746558', '6325146951033901350'], kwargs=None)], '5273669542542420348': ['5273669542542420348', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '-2218404699472089453'], kwargs=None)], '-2010475523332315978': ['-2010475523332315978', CallNode(function='Integer.__sub__', type_params=None, args=['-808026620668746558', '6325146951033901350'], kwargs=None)], '-3676002535650134703': ['-3676002535650134703', CallNode(function='Integer.__add__', type_params=None, args=['5764714247852502735', '1963673822784011260'], kwargs=None)], '3918164425348840515': ['3918164425348840515', CallNode(function='FunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['5273669542542420348', '-2010475523332315978', '1963673822784011260', '-3676002535650134703'], kwargs=None)], '-4705489241148282369': ['-4705489241148282369', CallNode(function='Integer.eq', type_params=None, args=['-808026620668746558', '6325146951033901350'], kwargs=None)], '2385595039180881329': ['2385595039180881329', CallNode(function='Boolean.if_', type_params=None, args=['-4705489241148282369', '1963673822784011260', '5764714247852502735'], kwargs=None)], '6099022499168263336': ['6099022499168263336', CallNode(function='Boolean.if_', type_params=None, args=['555335659624800737', '3918164425348840515', '2385595039180881329'], kwargs=None)], '962989529247964034': ['2193892090084648025', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['1963673822784011260', '6099022499168263336'], kwargs=None)], '1687986881092766184': ['-1500747919639408199', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['5764714247852502735', '962989529247964034'], kwargs=None)], '-2974947399862450098': ['8972369975130776289', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-808026620668746558', '1687986881092766184'], kwargs=None)], '1604752399855285098': ['1503188694666229145', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-2218404699472089453', '-2974947399862450098'], kwargs=None)], '7474717735547262305': ['-2616231968178105026', CallNode(function='Abstraction.fix', type_params=None, args=['1604752399855285098'], kwargs=None)], '271414626174357713': ['4615692901985549771', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '7474717735547262305'], kwargs=None)], '-4680000350632046801': ['9035282438128528067', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '271414626174357713'], kwargs=None)], '-5356085944341333606': ['1524023298192473829', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-4680000350632046801'], kwargs=None)], '4271036976135164429': ['7220818836429339286', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-5356085944341333606', '-3290865020609809785', '-3583216241042002267', '6325146951033901350'], kwargs=None)], '4210816321380885404': ['6261526295775775673', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3290865020609809785', '4271036976135164429'], kwargs=None)], '-7942013740372488676': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '4210816321380885404'], kwargs=None)], '-8736799035775674707': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['7108997176786111947', '-7942013740372488676'], kwargs=None)], '7412632606607976115': ['7412632606607976115', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner at 0x117bf7620>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf79d8>)\")], '-9012227333621399175': ['-9012227333621399175', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412632606607976115'], kwargs=None)], '-6088525062024978323': ['-6088525062024978323', CallNode(function='Abstraction.fix', type_params=None, args=['-9012227333621399175'], kwargs=None)], '8971793020356699732': ['5623947456069685973', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '-6088525062024978323'], kwargs=None)], '5410484726792215981': ['4626752930784986669', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '8971793020356699732'], kwargs=None)], '-3749917521659886773': ['7108997176786111947', CallNode(function='Pair.left', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['5410484726792215981'], kwargs=None)], '-8723637583106453615': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['-3749917521659886773', '-7942013740372488676'], kwargs=None)], '-732121319866066118': ['-732121319866066118', PrimitiveNode(type='Variable', repr='Variable(4693893976)')], '3686831515708517186': ['3686831515708517186', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-732121319866066118'], kwargs=None)], '7412632563887209515': ['7412632563887209515', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x117c566a8>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117c567b8>)\")], '-5676828982477546559': ['-5676828982477546559', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412632563887209515'], kwargs=None)], '3546234555524329108': ['-9012227333621399175', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['3686831515708517186', '-5676828982477546559'], kwargs=None)], '2169120372976143626': ['-6088525062024978323', CallNode(function='Abstraction.fix', type_params=None, args=['3546234555524329108'], kwargs=None)], '-2525115720496718177': ['5623947456069685973', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '2169120372976143626'], kwargs=None)], '4620350306840254974': ['4626752930784986669', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '-2525115720496718177'], kwargs=None)], '-6521625635168606160': ['7108997176786111947', CallNode(function='Pair.left', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['4620350306840254974'], kwargs=None)], '1413951941586074189': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['-6521625635168606160', '-7942013740372488676'], kwargs=None)], '8491250713645872490': ['8491250713645872490', PrimitiveNode(type='Variable', repr='Variable(4693978192)')], '-1256443561400883925': ['-1256443561400883925', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['8491250713645872490'], kwargs=None)], '7412633363422854115': ['7412633363422854115', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x117bf7a60>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117bf7510>)\")], '-5004895946799091351': ['-5004895946799091351', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412633363422854115'], kwargs=None)], '6338018295508169414': ['-5676828982477546559', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1256443561400883925', '-5004895946799091351'], kwargs=None)], '-7766744624820697011': ['-9012227333621399175', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['3686831515708517186', '6338018295508169414'], kwargs=None)], '6062302019901458689': ['-6088525062024978323', CallNode(function='Abstraction.fix', type_params=None, args=['-7766744624820697011'], kwargs=None)], '6909541235474180300': ['5623947456069685973', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '6062302019901458689'], kwargs=None)], '-1237837872188061842': ['4626752930784986669', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '6909541235474180300'], kwargs=None)], '-942883308524420890': ['7108997176786111947', CallNode(function='Pair.left', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-1237837872188061842'], kwargs=None)], '-3126007499610303067': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['-942883308524420890', '-7942013740372488676'], kwargs=None)], '-732121308697655693': ['-732121308697655693', PrimitiveNode(type='Variable', repr='Variable(4693796456)')], '-2851711366118638850': ['-2851711366118638850', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-732121308697655693'], kwargs=None)], '7412632955925803315': ['7412632955925803315', PrimitiveNode(type='FunctionReplaceTyping', repr=\"FunctionReplaceTyping(fn=<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x117c567b8>, typevars={~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>}, inner_mapping=<function replace_typevars_expression.<locals>.<lambda> at 0x117c568c8>)\")], '-1204073473483278343': ['-1204073473483278343', CallNode(function='Abstraction.from_fn', type_params=None, args=['7412632955925803315'], kwargs=None)], '-2109586072064441879': ['-5004895946799091351', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2851711366118638850', '-1204073473483278343'], kwargs=None)], '-3684866814833995140': ['-5676828982477546559', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1256443561400883925', '-2109586072064441879'], kwargs=None)], '8561017931360334080': ['-9012227333621399175', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['3686831515708517186', '-3684866814833995140'], kwargs=None)], '3281284362819432988': ['-6088525062024978323', CallNode(function='Abstraction.fix', type_params=None, args=['8561017931360334080'], kwargs=None)], '-5246748211749191394': ['5623947456069685973', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '3281284362819432988'], kwargs=None)], '-5746334004973404524': ['4626752930784986669', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '-5246748211749191394'], kwargs=None)], '8266958099135067338': ['7108997176786111947', CallNode(function='Pair.left', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-5746334004973404524'], kwargs=None)], '7603985805982962822': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['8266958099135067338', '-7942013740372488676'], kwargs=None)], '8491250716916180515': ['8491250716916180515', PrimitiveNode(type='Variable', repr='Variable(4693897056)')], '6538013570818597808': ['6538013570818597808', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['8491250716916180515'], kwargs=None)], '5533983751828955784': ['5533983751828955784', CallNode(function='Integer.__gt__', type_params=None, args=['-1256443561400883925', '6325146951033901350'], kwargs=None)], '-3551493808640946932': ['-3551493808640946932', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '3686831515708517186'], kwargs=None)], '5479575004185676687': ['5479575004185676687', CallNode(function='Integer.__sub__', type_params=None, args=['-1256443561400883925', '6325146951033901350'], kwargs=None)], '7827400091205757843': ['7827400091205757843', CallNode(function='Integer.__add__', type_params=None, args=['-2851711366118638850', '6538013570818597808'], kwargs=None)], '-2852784026524406801': ['-2852784026524406801', CallNode(function='FunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3551493808640946932', '5479575004185676687', '6538013570818597808', '7827400091205757843'], kwargs=None)], '3701848267033676582': ['3701848267033676582', CallNode(function='Integer.eq', type_params=None, args=['-1256443561400883925', '6325146951033901350'], kwargs=None)], '6479971903414758433': ['6479971903414758433', CallNode(function='Boolean.if_', type_params=None, args=['3701848267033676582', '6538013570818597808', '-2851711366118638850'], kwargs=None)], '-3346905352135425808': ['-3346905352135425808', CallNode(function='Boolean.if_', type_params=None, args=['5533983751828955784', '-2852784026524406801', '6479971903414758433'], kwargs=None)], '2178573689695233995': ['-1204073473483278343', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['6538013570818597808', '-3346905352135425808'], kwargs=None)], '-3794121229660499577': ['-5004895946799091351', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2851711366118638850', '2178573689695233995'], kwargs=None)], '-7674324248979668855': ['-5676828982477546559', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1256443561400883925', '-3794121229660499577'], kwargs=None)], '5265539021190779987': ['-9012227333621399175', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['3686831515708517186', '-7674324248979668855'], kwargs=None)], '5337637645072033610': ['-6088525062024978323', CallNode(function='Abstraction.fix', type_params=None, args=['5265539021190779987'], kwargs=None)], '9806125132565529': ['5623947456069685973', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '5337637645072033610'], kwargs=None)], '3542320105307783559': ['4626752930784986669', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '9806125132565529'], kwargs=None)], '3715864845822236104': ['7108997176786111947', CallNode(function='Pair.left', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['3542320105307783559'], kwargs=None)], '4956368705773594650': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['3715864845822236104', '-7942013740372488676'], kwargs=None)], '-8869922616258736873': ['-8869922616258736873', CallNode(function='FunctionThree.abstraction', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['5273669542542420348'], kwargs=None)], '813800637616694484': ['813800637616694484', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-8869922616258736873', '-2010475523332315978'], kwargs=None)], '-933147840307797687': ['-933147840307797687', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['813800637616694484', '1963673822784011260'], kwargs=None)], '7814178186524355439': ['3918164425348840515', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-933147840307797687', '-3676002535650134703'], kwargs=None)], '-4747665114687989666': ['6099022499168263336', CallNode(function='Boolean.if_', type_params=None, args=['555335659624800737', '7814178186524355439', '2385595039180881329'], kwargs=None)], '-6404377335771370736': ['2193892090084648025', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['1963673822784011260', '-4747665114687989666'], kwargs=None)], '8187349443881251148': ['-1500747919639408199', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['5764714247852502735', '-6404377335771370736'], kwargs=None)], '-39358014160072841': ['8972369975130776289', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-808026620668746558', '8187349443881251148'], kwargs=None)], '880491815589452508': ['1503188694666229145', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-2218404699472089453', '-39358014160072841'], kwargs=None)], '4290183482776733535': ['-2616231968178105026', CallNode(function='Abstraction.fix', type_params=None, args=['880491815589452508'], kwargs=None)], '1600314105688255389': ['4615692901985549771', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '4290183482776733535'], kwargs=None)], '-3742044759655754861': ['9035282438128528067', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '1600314105688255389'], kwargs=None)], '-4592041343014302207': ['1524023298192473829', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-3742044759655754861'], kwargs=None)], '-2262351587145021755': ['7220818836429339286', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-4592041343014302207', '-3290865020609809785', '-3583216241042002267', '6325146951033901350'], kwargs=None)], '-8568649978119546315': ['6261526295775775673', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3290865020609809785', '-2262351587145021755'], kwargs=None)], '-6092409311600830619': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '-8568649978119546315'], kwargs=None)], '-3978392646477205804': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['3715864845822236104', '-6092409311600830619'], kwargs=None)], '1158225584276799855': ['813800637616694484', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2218404699472089453', '-2010475523332315978'], kwargs=None)], '6116642849638404418': ['-933147840307797687', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['1158225584276799855', '1963673822784011260'], kwargs=None)], '6869091480187158002': ['3918164425348840515', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['6116642849638404418', '-3676002535650134703'], kwargs=None)], '-9146619245350571144': ['6099022499168263336', CallNode(function='Boolean.if_', type_params=None, args=['555335659624800737', '6869091480187158002', '2385595039180881329'], kwargs=None)], '-1596029074047881709': ['2193892090084648025', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['1963673822784011260', '-9146619245350571144'], kwargs=None)], '1109744608222471603': ['-1500747919639408199', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['5764714247852502735', '-1596029074047881709'], kwargs=None)], '2907869782943534867': ['8972369975130776289', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-808026620668746558', '1109744608222471603'], kwargs=None)], '6743160913950424153': ['1503188694666229145', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-2218404699472089453', '2907869782943534867'], kwargs=None)], '6423546443713427284': ['-2616231968178105026', CallNode(function='Abstraction.fix', type_params=None, args=['6743160913950424153'], kwargs=None)], '5531380902039500107': ['4615692901985549771', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '6423546443713427284'], kwargs=None)], '-1961898576601162173': ['9035282438128528067', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '5531380902039500107'], kwargs=None)], '-8308460306953947084': ['1524023298192473829', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-1961898576601162173'], kwargs=None)], '-7328125070462657134': ['7220818836429339286', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-8308460306953947084', '-3290865020609809785', '-3583216241042002267', '6325146951033901350'], kwargs=None)], '-1103485620982286201': ['6261526295775775673', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3290865020609809785', '-7328125070462657134'], kwargs=None)], '-6880133917432089086': ['8722543692205951913', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4725913326772741315', '-1103485620982286201'], kwargs=None)], '361444152944097461': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['3715864845822236104', '-6880133917432089086'], kwargs=None)], '-6972523730076414042': ['-6972523730076414042', CallNode(function='FunctionThree.abstraction', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3551493808640946932'], kwargs=None)], '7536267128241918466': ['7536267128241918466', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-6972523730076414042', '5479575004185676687'], kwargs=None)], '-7039190525139394778': ['-7039190525139394778', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['7536267128241918466', '6538013570818597808'], kwargs=None)], '-8691410319072797069': ['-2852784026524406801', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-7039190525139394778', '7827400091205757843'], kwargs=None)], '-7475059708508343358': ['-3346905352135425808', CallNode(function='Boolean.if_', type_params=None, args=['5533983751828955784', '-8691410319072797069', '6479971903414758433'], kwargs=None)], '8189062730614172955': ['-1204073473483278343', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['6538013570818597808', '-7475059708508343358'], kwargs=None)], '-3330010245231333408': ['-5004895946799091351', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2851711366118638850', '8189062730614172955'], kwargs=None)], '7463117423714826542': ['-5676828982477546559', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1256443561400883925', '-3330010245231333408'], kwargs=None)], '-5019137516813892370': ['-9012227333621399175', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['3686831515708517186', '7463117423714826542'], kwargs=None)], '8081585524676436271': ['-6088525062024978323', CallNode(function='Abstraction.fix', type_params=None, args=['-5019137516813892370'], kwargs=None)], '3060273032549201351': ['5623947456069685973', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '8081585524676436271'], kwargs=None)], '-4851325084541919240': ['4626752930784986669', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '3060273032549201351'], kwargs=None)], '8403424637920052158': ['7108997176786111947', CallNode(function='Pair.left', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-4851325084541919240'], kwargs=None)], '504943505945954141': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['8403424637920052158', '-6880133917432089086'], kwargs=None)], '4318845609147373794': ['7536267128241918466', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['3686831515708517186', '5479575004185676687'], kwargs=None)], '-7899468535260351664': ['-7039190525139394778', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['4318845609147373794', '6538013570818597808'], kwargs=None)], '-2356501649725275347': ['-2852784026524406801', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-7899468535260351664', '7827400091205757843'], kwargs=None)], '-770073920009476210': ['-3346905352135425808', CallNode(function='Boolean.if_', type_params=None, args=['5533983751828955784', '-2356501649725275347', '6479971903414758433'], kwargs=None)], '6528268183171962768': ['-1204073473483278343', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['6538013570818597808', '-770073920009476210'], kwargs=None)], '5993236546128606356': ['-5004895946799091351', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2851711366118638850', '6528268183171962768'], kwargs=None)], '6863324329334168633': ['-5676828982477546559', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1256443561400883925', '5993236546128606356'], kwargs=None)], '-3276991036306946112': ['-9012227333621399175', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['3686831515708517186', '6863324329334168633'], kwargs=None)], '-4304598581914280856': ['-6088525062024978323', CallNode(function='Abstraction.fix', type_params=None, args=['-3276991036306946112'], kwargs=None)], '-939301301305331488': ['5623947456069685973', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2416744201801222842', '-4304598581914280856'], kwargs=None)], '-4092086257083142080': ['4626752930784986669', CallNode(function='Module.register_function_three', type_params=None, args=['382668138798061573', '-939301301305331488'], kwargs=None)], '6368059999428657147': ['7108997176786111947', CallNode(function='Pair.left', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-4092086257083142080'], kwargs=None)], '-5332641643694669743': ['6856276731336713150', CallNode(function='Module.register_function_one', type_params=None, args=['6368059999428657147', '-6880133917432089086'], kwargs=None)]}, states=States(initial='6856276731336713150', states=[State(node='5654953204440361295', rule='metadsl_core.function.FunctionOne.from_fn', label=None), State(node='6963002688607303346', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='1805265982070591545', rule='metadsl_core.function.FunctionThree.from_fn_recursive', label=None), State(node='-6332609585604097430', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='1290740132143854684', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='-7294472008854822226', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='-8736799035775674707', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='-8723637583106453615', rule='metadsl_core.function.FunctionThree.from_fn_recursive', label=None), State(node='1413951941586074189', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='-3126007499610303067', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='7603985805982962822', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='4956368705773594650', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='-3978392646477205804', rule='metadsl_core.function.three_call', label=None), State(node='361444152944097461', rule='metadsl_core.function.three_abstraction', label=None), State(node='504943505945954141', rule='metadsl_core.function.three_call', label=None), State(node='-5332641643694669743', rule='metadsl_core.function.three_abstraction', label=None), State(node='-5332641643694669743', rule='', label='core')]))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mod = Module.create(\"Main\")\n",
    "\n",
    "@FunctionThree.from_fn_recursive\n",
    "def fib_more(\n",
    "    fn: FunctionThree[Integer, Integer, Integer, Integer],\n",
    "    n: Integer,\n",
    "    a: Integer,\n",
    "    b: Integer,\n",
    ") -> Integer:\n",
    "    pred_cont = n > one\n",
    "    minus1 = n - one\n",
    "    ab = a + b\n",
    "    added = fn(minus1, b, ab)\n",
    "\n",
    "    n_eq_1 = n.eq(one)\n",
    "    return pred_cont.if_(added, n_eq_1.if_(b, a))\n",
    "\n",
    "res = mod.register_function_three(fib_more)\n",
    "mod, fib_more_ref = res.left(), res.right()\n",
    "\n",
    "@FunctionOne.from_fn\n",
    "def fib(n: Integer) -> Integer:\n",
    "    return fib_more_ref(n, zero, one)\n",
    "\n",
    "\n",
    "mod.register_function_one(fib)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/json": {
       "nodes": {
        "-1025188181259960821": [
         "-1025188181259960821",
         {
          "args": [
           "6287046351788365200"
          ],
          "function": "FunctionOne.from_fn"
         }
        ],
        "-1130754155919476052": [
         "331997323044025149",
         {
          "args": [
           "-1366092147290172723"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-1366092147290172723": [
         "4899536719140060270",
         {
          "args": [
           "9194082363204006239",
           "-5381247678846279575"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-1435157371679626906": [
         "1172452201210198631",
         {
          "args": [
           "-4201411264265478741",
           "6029729004902272602"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-1678057234549661273": [
         "-1678057234549661273",
         {
          "args": [
           "-2533782795325787516",
           "-8829491234363156666",
           "2485022505487976956",
           "8610094552342352291"
          ],
          "function": "FunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-1834925178008141342": [
         "-1834925178008141342",
         {
          "args": [
           "-2936325706060900458"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "-1842970633542277731": [
         "-1842970633542277731",
         {
          "repr": "Variable(4525394912)",
          "type": "Variable"
         }
        ],
        "-1842970636179308631": [
         "-1842970636179308631",
         {
          "repr": "Variable(4525454112)",
          "type": "Variable"
         }
        ],
        "-1842970648362044981": [
         "-1842970648362044981",
         {
          "repr": "Variable(4525371968)",
          "type": "Variable"
         }
        ],
        "-1847867787378846835": [
         "1679961851819582347",
         {
          "args": [
           "2780308607730068815"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "-1991243927830375693": [
         "-8475238085131152238",
         {
          "args": [
           "9033152268747220883"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-210743540934503925": [
         "2258623479388985830",
         {
          "args": [
           "6987256301798395682",
           "-8829491234363156666"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-2300311849643639191": [
         "216991575121629990",
         {
          "args": [
           "2673734682725344796",
           "7134475887744218515"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-2403671889061907422": [
         "-2403671889061907422",
         {
          "args": [
           "-2630333337664267462",
           "6698008615730782711"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-2533782795325787516": [
         "-2533782795325787516",
         {
          "args": [
           "2673734682725344796",
           "6987256301798395682"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-2608198648929359042": [
         "4899536719140060270",
         {
          "args": [
           "9194082363204006239",
           "6891077840190785164"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-2630333337664267462": [
         "-2630333337664267462",
         {
          "args": [
           "7380415924466309352"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-2762336936409586090": [
         "-7930995119366425672",
         {
          "args": [
           "7730467945412319762",
           "281689739684471306"
          ],
          "function": "FunctionOne.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-2798832603938002636": [
         "-2798832603938002636",
         {
          "args": [
           "331997323044025149",
           "-4201411264265478741",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-2936325706006774208": [
         "-2936325706006774208",
         {
          "repr": "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x11887d400>",
          "type": "function"
         }
        ],
        "-2936325706060900458": [
         "-2936325706060900458",
         {
          "repr": "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x11887d1e0>",
          "type": "function"
         }
        ],
        "-2936325706173483058": [
         "-2936325706173483058",
         {
          "repr": "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x11887da60>",
          "type": "function"
         }
        ],
        "-2936325743345226508": [
         "-2936325743345226508",
         {
          "repr": "<function fib_more at 0x1188f3840>",
          "type": "function"
         }
        ],
        "-3010663954029102725": [
         "-3010663954029102725",
         {
          "args": [
           "5039176343654746996",
           "-1678057234549661273",
           "-3535433948775298598"
          ],
          "function": "Boolean.if_"
         }
        ],
        "-3033993469913752895": [
         "9086350412372606544",
         {
          "args": [
           "-210743540934503925",
           "2485022505487976956"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-3204228431626515969": [
         "-3204228431626515969",
         {
          "args": [
           "6287046293741209650"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "-3535433948775298598": [
         "-3535433948775298598",
         {
          "args": [
           "-8103950655183150449",
           "2485022505487976956",
           "-83959885639906586"
          ],
          "function": "Boolean.if_"
         }
        ],
        "-3707657341861473831": [
         "-1025188181259960821",
         {
          "args": [
           "2464825165261485652",
           "1172452201210198631"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-409661326369817115": [
         "-7930995119366425672",
         {
          "args": [
           "8594748029156308621",
           "281689739684471306"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-4119107354117605282": [
         "1172452201210198631",
         {
          "args": [
           "-4201411264265478741",
           "2641203150099392547"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-4201411264265478741": [
         "-4201411264265478741",
         {
          "args": [
           "7380415972152618127"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-4204396640721988429": [
         "-3010663954029102725",
         {
          "args": [
           "5039176343654746996",
           "2622755402051324158",
           "-3535433948775298598"
          ],
          "function": "Boolean.if_"
         }
        ],
        "-4301889102193211785": [
         "1172452201210198631",
         {
          "args": [
           "-4201411264265478741",
           "4784451372487240553"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-4480309806015563314": [
         "3141279798455495910",
         {
          "args": [
           "6987256301798395682",
           "3898798555001460600"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-4522893253874214441": [
         "-4851746490968064321",
         {
          "args": [
           "2485022505487976956",
           "-4204396640721988429"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-4818300998285447382": [
         "-1834925178008141342",
         {
          "args": [
           "-2630333337664267462",
           "-6504227916040003133"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-4851746490968064321": [
         "-4851746490968064321",
         {
          "args": [
           "2485022505487976956",
           "-3010663954029102725"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-5364263143082931094": [
         "-5364263143082931094",
         {
          "args": [
           "-2533782795325787516"
          ],
          "function": "FunctionThree.abstraction",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-5381247678846279575": [
         "6666383149566541436",
         {
          "args": [
           "2673734682725344796",
           "-8660868569897678951"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-5931879195317611386": [
         "-7930995119366425672",
         {
          "args": [
           "-8475238085131152238",
           "281689739684471306",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-5959579613653664570": [
         "-7930995119366425672",
         {
          "args": [
           "8372384807668618114",
           "281689739684471306"
          ],
          "function": "FunctionOne.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-6504227916040003133": [
         "6353655735887172170",
         {
          "args": [
           "-83959885639906586",
           "2698123946207273120"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-7031183907197251467": [
         "-2403671889061907422",
         {
          "args": [
           "-2630333337664267462",
           "-7381302850267290421"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-7381302850267290421": [
         "6698008615730782711",
         {
          "args": [
           "-83959885639906586",
           "6432869366879058503"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-7565138950805325298": [
         "-7565138950805325298",
         {
          "args": [
           "3141279798455495910"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "-762579374646262444": [
         "-762579374646262444",
         {
          "args": [
           "2464825165261485652",
           "8594748029156308621"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-7903349236455192199": [
         "1172452201210198631",
         {
          "args": [
           "-4201411264265478741",
           "4987316013230589075"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-7930995119366425672": [
         "-7930995119366425672",
         {
          "args": [
           "-1025188181259960821",
           "281689739684471306"
          ],
          "function": "FunctionOne.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-797134544341576669": [
         "-7930995119366425672",
         {
          "args": [
           "-762579374646262444",
           "281689739684471306"
          ],
          "function": "FunctionOne.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-8062860982755750992": [
         "-8062860982755750992",
         {
          "args": [
           "6290633000948873875"
          ],
          "function": "Integer.from_int"
         }
        ],
        "-8103950655183150449": [
         "-8103950655183150449",
         {
          "args": [
           "-2630333337664267462",
           "8991566627588652371"
          ],
          "function": "Integer.eq"
         }
        ],
        "-8246903710647587428": [
         "-7565138950805325298",
         {
          "args": [
           "-4480309806015563314"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "-83959885639906586": [
         "-83959885639906586",
         {
          "args": [
           "-1842970633542277731"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-8461624146447902958": [
         "-7930995119366425672",
         {
          "args": [
           "-1991243927830375693",
           "281689739684471306",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "-8475238085131152238": [
         "-8475238085131152238",
         {
          "args": [
           "-9032619582627668474"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-8525262730167044086": [
         "-8525262730167044086",
         {
          "args": [
           "-762579374646262444"
          ],
          "function": "FunctionOne.abstraction",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "-8652459915148536727": [
         "-1834925178008141342",
         {
          "args": [
           "-2630333337664267462",
           "6353655735887172170"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "-8660868569897678951": [
         "1679961851819582347",
         {
          "args": [
           "4315049639738486451"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "-8829491234363156666": [
         "-8829491234363156666",
         {
          "args": [
           "-2630333337664267462",
           "8991566627588652371"
          ],
          "function": "Integer.__sub__"
         }
        ],
        "-9032619582627668474": [
         "-9032619582627668474",
         {
          "args": [
           "9194082363204006239",
           "216991575121629990"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "-9047616665901287451": [
         "331997323044025149",
         {
          "args": [
           "6421049583071104118"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-911672752600669477": [
         "331997323044025149",
         {
          "args": [
           "6625000848682397916"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "-9215743353267092809": [
         "-8475238085131152238",
         {
          "args": [
           "1744651705977060466"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "1172452201210198631": [
         "1172452201210198631",
         {
          "args": [
           "6287046354319308650"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "1679961851819582347": [
         "1679961851819582347",
         {
          "args": [
           "-3204228431626515969"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "1744651705977060466": [
         "-9032619582627668474",
         {
          "args": [
           "9194082363204006239",
           "4701699662903140968"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "2024082147828518108": [
         "331997323044025149",
         {
          "args": [
           "-2608198648929359042"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "216991575121629990": [
         "216991575121629990",
         {
          "args": [
           "2673734682725344796",
           "-7565138950805325298"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "2258623479388985830": [
         "2258623479388985830",
         {
          "args": [
           "-5364263143082931094",
           "-8829491234363156666"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "2464825165261485652": [
         "2464825165261485652",
         {
          "repr": "'fib'",
          "type": "str"
         }
        ],
        "2485022505487976956": [
         "2485022505487976956",
         {
          "args": [
           "-1842970636179308631"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "2622755402051324158": [
         "-1678057234549661273",
         {
          "args": [
           "9086350412372606544",
           "8610094552342352291"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "2641203150099392547": [
         "-2798832603938002636",
         {
          "args": [
           "-1130754155919476052",
           "-4201411264265478741",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "2673734682725344796": [
         "2673734682725344796",
         {
          "repr": "'fib_more'",
          "type": "str"
         }
        ],
        "2698123946207273120": [
         "2698123946207273120",
         {
          "args": [
           "-2936325706006774208"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "2780308607730068815": [
         "-3204228431626515969",
         {
          "args": [
           "6987256301798395682",
           "-8652459915148536727"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "281689739684471306": [
         "281689739684471306",
         {
          "args": [
           "6290633000942378725"
          ],
          "function": "Integer.from_int"
         }
        ],
        "3141279798455495910": [
         "3141279798455495910",
         {
          "args": [
           "6987256301798395682",
           "-2403671889061907422"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "331997323044025149": [
         "331997323044025149",
         {
          "args": [
           "4899536719140060270"
          ],
          "function": "Pair.right",
          "type_params": {
           "T": {
            "type": "Module"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             },
             "V": {
              "type": "Integer"
             },
             "X": {
              "type": "Integer"
             }
            },
            "type": "RegisteredFunctionThree"
           }
          }
         }
        ],
        "3898798555001460600": [
         "-2403671889061907422",
         {
          "args": [
           "-2630333337664267462",
           "4497406104319796142"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "type": "Integer"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "4150578307060337322": [
         "-7930995119366425672",
         {
          "args": [
           "6086865145829675927",
           "281689739684471306"
          ],
          "function": "FunctionOne.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "4315049639738486451": [
         "-3204228431626515969",
         {
          "args": [
           "6987256301798395682",
           "-1834925178008141342"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "4497406104319796142": [
         "6698008615730782711",
         {
          "args": [
           "-83959885639906586",
           "-4522893253874214441"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "4701699662903140968": [
         "216991575121629990",
         {
          "args": [
           "2673734682725344796",
           "-8246903710647587428"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "4784451372487240553": [
         "-2798832603938002636",
         {
          "args": [
           "-9047616665901287451",
           "-4201411264265478741",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "4899536719140060270": [
         "4899536719140060270",
         {
          "args": [
           "9194082363204006239",
           "6666383149566541436"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "4936490607844492398": [
         "-7930995119366425672",
         {
          "args": [
           "-8525262730167044086",
           "281689739684471306"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "4987316013230589075": [
         "-2798832603938002636",
         {
          "args": [
           "2024082147828518108",
           "-4201411264265478741",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "5039176343654746996": [
         "5039176343654746996",
         {
          "args": [
           "-2630333337664267462",
           "8991566627588652371"
          ],
          "function": "Integer.__gt__"
         }
        ],
        "5071658115449224495": [
         "1172452201210198631",
         {
          "args": [
           "-4201411264265478741",
           "-2798832603938002636"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "5191098963953740705": [
         "-7930995119366425672",
         {
          "args": [
           "8506521199140663867",
           "281689739684471306"
          ],
          "function": "FunctionOne.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "5994086350276621990": [
         "6666383149566541436",
         {
          "args": [
           "2673734682725344796",
           "1679961851819582347"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "6029729004902272602": [
         "-2798832603938002636",
         {
          "args": [
           "-911672752600669477",
           "-4201411264265478741",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "6086865145829675927": [
         "-1025188181259960821",
         {
          "args": [
           "2464825165261485652",
           "-4119107354117605282"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "6287046293741209650": [
         "6287046293741209650",
         {
          "repr": "<function FunctionThree.from_fn_recursive.<locals>.inner at 0x1188f36a8>",
          "type": "function"
         }
        ],
        "6287046351788365200": [
         "6287046351788365200",
         {
          "repr": "<function fib at 0x118821d08>",
          "type": "function"
         }
        ],
        "6287046354319308650": [
         "6287046354319308650",
         {
          "repr": "<function fib at 0x118828f28>",
          "type": "function"
         }
        ],
        "6290633000942378725": [
         "6290633000942378725",
         {
          "repr": "10",
          "type": "int"
         }
        ],
        "6290633000948873875": [
         "6290633000948873875",
         {
          "repr": "0",
          "type": "int"
         }
        ],
        "6290633000949956400": [
         "6290633000949956400",
         {
          "repr": "1",
          "type": "int"
         }
        ],
        "6324436717735744683": [
         "-7930995119366425672",
         {
          "args": [
           "-9215743353267092809",
           "281689739684471306",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "6353655735887172170": [
         "6353655735887172170",
         {
          "args": [
           "-2936325706173483058"
          ],
          "function": "Abstraction.from_fn"
         }
        ],
        "6379008523199503104": [
         "-3010663954029102725",
         {
          "args": [
           "5039176343654746996",
           "7370479135019701401",
           "-3535433948775298598"
          ],
          "function": "Boolean.if_"
         }
        ],
        "6421049583071104118": [
         "4899536719140060270",
         {
          "args": [
           "9194082363204006239",
           "6654312104302240340"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "6432869366879058503": [
         "-4851746490968064321",
         {
          "args": [
           "2485022505487976956",
           "6379008523199503104"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "650796385760501378": [
         "-1025188181259960821",
         {
          "args": [
           "2464825165261485652",
           "-7903349236455192199"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "6614696116057853973": [
         "-7930995119366425672",
         {
          "args": [
           "650796385760501378",
           "281689739684471306"
          ],
          "function": "FunctionOne.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "6625000848682397916": [
         "4899536719140060270",
         {
          "args": [
           "9194082363204006239",
           "5994086350276621990"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "6654312104302240340": [
         "6666383149566541436",
         {
          "args": [
           "2673734682725344796",
           "8296590541316663666"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "6666383149566541436": [
         "6666383149566541436",
         {
          "args": [
           "-2936325743345226508"
          ],
          "function": "FunctionThree.from_fn_recursive"
         }
        ],
        "6698008615730782711": [
         "6698008615730782711",
         {
          "args": [
           "-83959885639906586",
           "-4851746490968064321"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "6783442550308425521": [
         "-3204228431626515969",
         {
          "args": [
           "6987256301798395682",
           "-4818300998285447382"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "6891077840190785164": [
         "6666383149566541436",
         {
          "args": [
           "2673734682725344796",
           "-1847867787378846835"
          ],
          "function": "FunctionThree.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "6987256301798395682": [
         "6987256301798395682",
         {
          "args": [
           "-1842970648362044981"
          ],
          "function": "Abstraction.create_variable",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "7134475887744218515": [
         "-7565138950805325298",
         {
          "args": [
           "8801742192859552643"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "7370479135019701401": [
         "-1678057234549661273",
         {
          "args": [
           "-3033993469913752895",
           "8610094552342352291"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "7380415924466309352": [
         "7380415924466309352",
         {
          "repr": "Variable(4706630232)",
          "type": "Variable"
         }
        ],
        "7380415972152618127": [
         "7380415972152618127",
         {
          "repr": "Variable(4706187528)",
          "type": "Variable"
         }
        ],
        "7724197279715717350": [
         "7724197279715717350",
         {
          "args": [
           "-8475238085131152238",
           "-4201411264265478741",
           "-8062860982755750992",
           "8991566627588652371"
          ],
          "function": "RegisteredFunctionThree.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           },
           "V": {
            "type": "Integer"
           },
           "X": {
            "type": "Integer"
           }
          }
         }
        ],
        "7730467945412319762": [
         "-1025188181259960821",
         {
          "args": [
           "2464825165261485652",
           "-1435157371679626906"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "779868771537704119": [
         "-7930995119366425672",
         {
          "args": [
           "-3707657341861473831",
           "281689739684471306"
          ],
          "function": "FunctionOne.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "7964024461393131612": [
         "7964024461393131612",
         {
          "repr": "'Main'",
          "type": "str"
         }
        ],
        "8296590541316663666": [
         "1679961851819582347",
         {
          "args": [
           "6783442550308425521"
          ],
          "function": "Abstraction.fix"
         }
        ],
        "8372384807668618114": [
         "-1025188181259960821",
         {
          "args": [
           "2464825165261485652",
           "-4301889102193211785"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "8506521199140663867": [
         "-1025188181259960821",
         {
          "args": [
           "2464825165261485652",
           "5071658115449224495"
          ],
          "function": "FunctionOne.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "8594748029156308621": [
         "-8525262730167044086",
         {
          "args": [
           "-4201411264265478741",
           "7724197279715717350"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "type": "Integer"
           }
          }
         }
        ],
        "8610094552342352291": [
         "8610094552342352291",
         {
          "args": [
           "-83959885639906586",
           "2485022505487976956"
          ],
          "function": "Integer.__add__"
         }
        ],
        "8801742192859552643": [
         "3141279798455495910",
         {
          "args": [
           "6987256301798395682",
           "-7031183907197251467"
          ],
          "function": "Abstraction.create",
          "type_params": {
           "T": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "params": {
               "T": {
                "type": "Integer"
               },
               "U": {
                "params": {
                 "T": {
                  "type": "Integer"
                 },
                 "U": {
                  "type": "Integer"
                 }
                },
                "type": "Abstraction"
               }
              },
              "type": "Abstraction"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "8991566627588652371": [
         "8991566627588652371",
         {
          "args": [
           "6290633000949956400"
          ],
          "function": "Integer.from_int"
         }
        ],
        "9033152268747220883": [
         "-9032619582627668474",
         {
          "args": [
           "9194082363204006239",
           "-2300311849643639191"
          ],
          "function": "Module.register_function_three"
         }
        ],
        "9086350412372606544": [
         "9086350412372606544",
         {
          "args": [
           "2258623479388985830",
           "2485022505487976956"
          ],
          "function": "Abstraction.__call__",
          "type_params": {
           "T": {
            "type": "Integer"
           },
           "U": {
            "params": {
             "T": {
              "type": "Integer"
             },
             "U": {
              "type": "Integer"
             }
            },
            "type": "Abstraction"
           }
          }
         }
        ],
        "9194082363204006239": [
         "9194082363204006239",
         {
          "args": [
           "7964024461393131612"
          ],
          "function": "Module.create"
         }
        ]
       },
       "states": {
        "initial": "-7930995119366425672",
        "states": [
         {
          "node": "779868771537704119",
          "rule": "metadsl_core.function.FunctionOne.from_fn"
         },
         {
          "node": "5191098963953740705",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "-2762336936409586090",
          "rule": "metadsl_core.function.FunctionThree.from_fn_recursive"
         },
         {
          "node": "4150578307060337322",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "6614696116057853973",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "-5959579613653664570",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "-797134544341576669",
          "rule": "metadsl_core.abstraction.Abstraction.from_fn"
         },
         {
          "node": "4936490607844492398",
          "rule": "metadsl_core.function.one_call"
         },
         {
          "node": "-409661326369817115",
          "rule": "metadsl_core.function.one_abstraction"
         },
         {
          "node": "-5931879195317611386",
          "rule": "metadsl_core.abstraction.beta_reduce"
         },
         {
          "node": "6324436717735744683",
          "rule": "metadsl_core.function.three_call"
         },
         {
          "node": "-8461624146447902958",
          "rule": "metadsl_core.function.three_abstraction"
         },
         {
          "label": "core",
          "node": "-8461624146447902958",
          "rule": ""
         }
        ]
       }
      },
      "application/x.typez.graph+json": {
       "initial": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-7930995119366425672 [label=\"FunctionOne.__call__\" id=-7930995119366425672]\n\t-7930995119366425672 -> -1025188181259960821 [id=\"-7930995119366425672.args[0]\"]\n\t-1025188181259960821 [label=\"FunctionOne.from_fn\" id=-1025188181259960821]\n\t-1025188181259960821 -> 6287046351788365200 [id=\"-1025188181259960821.args[0]\"]\n\t6287046351788365200 [label=\"function fib at 0x118821d08\" id=6287046351788365200]\n\t-7930995119366425672 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
       "states": [
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t779868771537704119 [label=\"FunctionOne.__call__\" id=-7930995119366425672]\n\t779868771537704119 -> -3707657341861473831 [id=\"-7930995119366425672.args[0]\"]\n\t-3707657341861473831 [label=\"FunctionOne.create\" id=-1025188181259960821]\n\t-3707657341861473831 -> 2464825165261485652 [id=\"-1025188181259960821.args[0]\"]\n\t2464825165261485652 [label=\"'fib'\" id=2464825165261485652]\n\t-3707657341861473831 -> 1172452201210198631 [id=\"-1025188181259960821.args[1]\"]\n\t1172452201210198631 [label=\"Abstraction.from_fn\" id=1172452201210198631]\n\t1172452201210198631 -> 6287046354319308650 [id=\"1172452201210198631.args[0]\"]\n\t6287046354319308650 [label=\"function fib at 0x118828f28\" id=6287046354319308650]\n\t779868771537704119 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.function.FunctionOne.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t5191098963953740705 [label=\"FunctionOne.__call__\" id=-7930995119366425672]\n\t5191098963953740705 -> 8506521199140663867 [id=\"-7930995119366425672.args[0]\"]\n\t8506521199140663867 [label=\"FunctionOne.create\" id=-1025188181259960821]\n\t8506521199140663867 -> 2464825165261485652 [id=\"-1025188181259960821.args[0]\"]\n\t2464825165261485652 [label=\"'fib'\" id=2464825165261485652]\n\t8506521199140663867 -> 5071658115449224495 [id=\"-1025188181259960821.args[1]\"]\n\t5071658115449224495 [label=\"Abstraction.create\" id=1172452201210198631]\n\t5071658115449224495 -> -4201411264265478741 [id=\"1172452201210198631.args[0]\"]\n\t-4201411264265478741 [label=\"Abstraction.create_variable\" id=-4201411264265478741]\n\t-4201411264265478741 -> 7380415972152618127 [id=\"-4201411264265478741.args[0]\"]\n\t7380415972152618127 [label=\"Variable(4706187528)\" id=7380415972152618127]\n\t5071658115449224495 -> -2798832603938002636 [id=\"1172452201210198631.args[1]\"]\n\t-2798832603938002636 [label=\"RegisteredFunctionThree.__call__\" id=-2798832603938002636]\n\t-2798832603938002636 -> 331997323044025149 [id=\"-2798832603938002636.args[0]\"]\n\t331997323044025149 [label=\"Pair.right\" id=331997323044025149]\n\t331997323044025149 -> 4899536719140060270 [id=\"331997323044025149.args[0]\"]\n\t4899536719140060270 [label=\"Module.register_function_three\" id=4899536719140060270]\n\t4899536719140060270 -> 9194082363204006239 [id=\"4899536719140060270.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t4899536719140060270 -> 6666383149566541436 [id=\"4899536719140060270.args[1]\"]\n\t6666383149566541436 [label=\"FunctionThree.from_fn_recursive\" id=6666383149566541436]\n\t6666383149566541436 -> -2936325743345226508 [id=\"6666383149566541436.args[0]\"]\n\t-2936325743345226508 [label=\"function fib_more at 0x1188f3840\" id=-2936325743345226508]\n\t-2798832603938002636 -> -4201411264265478741 [id=\"-2798832603938002636.args[1]\"]\n\t-2798832603938002636 -> -8062860982755750992 [id=\"-2798832603938002636.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t-2798832603938002636 -> 8991566627588652371 [id=\"-2798832603938002636.args[3]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t5191098963953740705 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-2762336936409586090 [label=\"FunctionOne.__call__\" id=-7930995119366425672]\n\t-2762336936409586090 -> 7730467945412319762 [id=\"-7930995119366425672.args[0]\"]\n\t7730467945412319762 [label=\"FunctionOne.create\" id=-1025188181259960821]\n\t7730467945412319762 -> 2464825165261485652 [id=\"-1025188181259960821.args[0]\"]\n\t2464825165261485652 [label=\"'fib'\" id=2464825165261485652]\n\t7730467945412319762 -> -1435157371679626906 [id=\"-1025188181259960821.args[1]\"]\n\t-1435157371679626906 [label=\"Abstraction.create\" id=1172452201210198631]\n\t-1435157371679626906 -> -4201411264265478741 [id=\"1172452201210198631.args[0]\"]\n\t-4201411264265478741 [label=\"Abstraction.create_variable\" id=-4201411264265478741]\n\t-4201411264265478741 -> 7380415972152618127 [id=\"-4201411264265478741.args[0]\"]\n\t7380415972152618127 [label=\"Variable(4706187528)\" id=7380415972152618127]\n\t-1435157371679626906 -> 6029729004902272602 [id=\"1172452201210198631.args[1]\"]\n\t6029729004902272602 [label=\"RegisteredFunctionThree.__call__\" id=-2798832603938002636]\n\t6029729004902272602 -> -911672752600669477 [id=\"-2798832603938002636.args[0]\"]\n\t-911672752600669477 [label=\"Pair.right\" id=331997323044025149]\n\t-911672752600669477 -> 6625000848682397916 [id=\"331997323044025149.args[0]\"]\n\t6625000848682397916 [label=\"Module.register_function_three\" id=4899536719140060270]\n\t6625000848682397916 -> 9194082363204006239 [id=\"4899536719140060270.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t6625000848682397916 -> 5994086350276621990 [id=\"4899536719140060270.args[1]\"]\n\t5994086350276621990 [label=\"FunctionThree.create\" id=6666383149566541436]\n\t5994086350276621990 -> 2673734682725344796 [id=\"6666383149566541436.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t5994086350276621990 -> 1679961851819582347 [id=\"6666383149566541436.args[1]\"]\n\t1679961851819582347 [label=\"Abstraction.fix\" id=1679961851819582347]\n\t1679961851819582347 -> -3204228431626515969 [id=\"1679961851819582347.args[0]\"]\n\t-3204228431626515969 [label=\"Abstraction.from_fn\" id=-3204228431626515969]\n\t-3204228431626515969 -> 6287046293741209650 [id=\"-3204228431626515969.args[0]\"]\n\t6287046293741209650 [label=\"function FunctionThree.from_fn_recursive.locals.inner at 0x1188f36a8\" id=6287046293741209650]\n\t6029729004902272602 -> -4201411264265478741 [id=\"-2798832603938002636.args[1]\"]\n\t6029729004902272602 -> -8062860982755750992 [id=\"-2798832603938002636.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t6029729004902272602 -> 8991566627588652371 [id=\"-2798832603938002636.args[3]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t-2762336936409586090 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.function.FunctionThree.from_fn_recursive"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t4150578307060337322 [label=\"FunctionOne.__call__\" id=-7930995119366425672]\n\t4150578307060337322 -> 6086865145829675927 [id=\"-7930995119366425672.args[0]\"]\n\t6086865145829675927 [label=\"FunctionOne.create\" id=-1025188181259960821]\n\t6086865145829675927 -> 2464825165261485652 [id=\"-1025188181259960821.args[0]\"]\n\t2464825165261485652 [label=\"'fib'\" id=2464825165261485652]\n\t6086865145829675927 -> -4119107354117605282 [id=\"-1025188181259960821.args[1]\"]\n\t-4119107354117605282 [label=\"Abstraction.create\" id=1172452201210198631]\n\t-4119107354117605282 -> -4201411264265478741 [id=\"1172452201210198631.args[0]\"]\n\t-4201411264265478741 [label=\"Abstraction.create_variable\" id=-4201411264265478741]\n\t-4201411264265478741 -> 7380415972152618127 [id=\"-4201411264265478741.args[0]\"]\n\t7380415972152618127 [label=\"Variable(4706187528)\" id=7380415972152618127]\n\t-4119107354117605282 -> 2641203150099392547 [id=\"1172452201210198631.args[1]\"]\n\t2641203150099392547 [label=\"RegisteredFunctionThree.__call__\" id=-2798832603938002636]\n\t2641203150099392547 -> -1130754155919476052 [id=\"-2798832603938002636.args[0]\"]\n\t-1130754155919476052 [label=\"Pair.right\" id=331997323044025149]\n\t-1130754155919476052 -> -1366092147290172723 [id=\"331997323044025149.args[0]\"]\n\t-1366092147290172723 [label=\"Module.register_function_three\" id=4899536719140060270]\n\t-1366092147290172723 -> 9194082363204006239 [id=\"4899536719140060270.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t-1366092147290172723 -> -5381247678846279575 [id=\"4899536719140060270.args[1]\"]\n\t-5381247678846279575 [label=\"FunctionThree.create\" id=6666383149566541436]\n\t-5381247678846279575 -> 2673734682725344796 [id=\"6666383149566541436.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t-5381247678846279575 -> -8660868569897678951 [id=\"6666383149566541436.args[1]\"]\n\t-8660868569897678951 [label=\"Abstraction.fix\" id=1679961851819582347]\n\t-8660868569897678951 -> 4315049639738486451 [id=\"1679961851819582347.args[0]\"]\n\t4315049639738486451 [label=\"Abstraction.create\" id=-3204228431626515969]\n\t4315049639738486451 -> 6987256301798395682 [id=\"-3204228431626515969.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t4315049639738486451 -> -1834925178008141342 [id=\"-3204228431626515969.args[1]\"]\n\t-1834925178008141342 [label=\"Abstraction.from_fn\" id=-1834925178008141342]\n\t-1834925178008141342 -> -2936325706060900458 [id=\"-1834925178008141342.args[0]\"]\n\t-2936325706060900458 [label=\"function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner at 0x11887d1e0\" id=-2936325706060900458]\n\t2641203150099392547 -> -4201411264265478741 [id=\"-2798832603938002636.args[1]\"]\n\t2641203150099392547 -> -8062860982755750992 [id=\"-2798832603938002636.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t2641203150099392547 -> 8991566627588652371 [id=\"-2798832603938002636.args[3]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t4150578307060337322 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t6614696116057853973 [label=\"FunctionOne.__call__\" id=-7930995119366425672]\n\t6614696116057853973 -> 650796385760501378 [id=\"-7930995119366425672.args[0]\"]\n\t650796385760501378 [label=\"FunctionOne.create\" id=-1025188181259960821]\n\t650796385760501378 -> 2464825165261485652 [id=\"-1025188181259960821.args[0]\"]\n\t2464825165261485652 [label=\"'fib'\" id=2464825165261485652]\n\t650796385760501378 -> -7903349236455192199 [id=\"-1025188181259960821.args[1]\"]\n\t-7903349236455192199 [label=\"Abstraction.create\" id=1172452201210198631]\n\t-7903349236455192199 -> -4201411264265478741 [id=\"1172452201210198631.args[0]\"]\n\t-4201411264265478741 [label=\"Abstraction.create_variable\" id=-4201411264265478741]\n\t-4201411264265478741 -> 7380415972152618127 [id=\"-4201411264265478741.args[0]\"]\n\t7380415972152618127 [label=\"Variable(4706187528)\" id=7380415972152618127]\n\t-7903349236455192199 -> 4987316013230589075 [id=\"1172452201210198631.args[1]\"]\n\t4987316013230589075 [label=\"RegisteredFunctionThree.__call__\" id=-2798832603938002636]\n\t4987316013230589075 -> 2024082147828518108 [id=\"-2798832603938002636.args[0]\"]\n\t2024082147828518108 [label=\"Pair.right\" id=331997323044025149]\n\t2024082147828518108 -> -2608198648929359042 [id=\"331997323044025149.args[0]\"]\n\t-2608198648929359042 [label=\"Module.register_function_three\" id=4899536719140060270]\n\t-2608198648929359042 -> 9194082363204006239 [id=\"4899536719140060270.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t-2608198648929359042 -> 6891077840190785164 [id=\"4899536719140060270.args[1]\"]\n\t6891077840190785164 [label=\"FunctionThree.create\" id=6666383149566541436]\n\t6891077840190785164 -> 2673734682725344796 [id=\"6666383149566541436.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t6891077840190785164 -> -1847867787378846835 [id=\"6666383149566541436.args[1]\"]\n\t-1847867787378846835 [label=\"Abstraction.fix\" id=1679961851819582347]\n\t-1847867787378846835 -> 2780308607730068815 [id=\"1679961851819582347.args[0]\"]\n\t2780308607730068815 [label=\"Abstraction.create\" id=-3204228431626515969]\n\t2780308607730068815 -> 6987256301798395682 [id=\"-3204228431626515969.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t2780308607730068815 -> -8652459915148536727 [id=\"-3204228431626515969.args[1]\"]\n\t-8652459915148536727 [label=\"Abstraction.create\" id=-1834925178008141342]\n\t-8652459915148536727 -> -2630333337664267462 [id=\"-1834925178008141342.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t-8652459915148536727 -> 6353655735887172170 [id=\"-1834925178008141342.args[1]\"]\n\t6353655735887172170 [label=\"Abstraction.from_fn\" id=6353655735887172170]\n\t6353655735887172170 -> -2936325706173483058 [id=\"6353655735887172170.args[0]\"]\n\t-2936325706173483058 [label=\"function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner.locals.inner_inner_inner at 0x11887da60\" id=-2936325706173483058]\n\t4987316013230589075 -> -4201411264265478741 [id=\"-2798832603938002636.args[1]\"]\n\t4987316013230589075 -> -8062860982755750992 [id=\"-2798832603938002636.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t4987316013230589075 -> 8991566627588652371 [id=\"-2798832603938002636.args[3]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t6614696116057853973 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-5959579613653664570 [label=\"FunctionOne.__call__\" id=-7930995119366425672]\n\t-5959579613653664570 -> 8372384807668618114 [id=\"-7930995119366425672.args[0]\"]\n\t8372384807668618114 [label=\"FunctionOne.create\" id=-1025188181259960821]\n\t8372384807668618114 -> 2464825165261485652 [id=\"-1025188181259960821.args[0]\"]\n\t2464825165261485652 [label=\"'fib'\" id=2464825165261485652]\n\t8372384807668618114 -> -4301889102193211785 [id=\"-1025188181259960821.args[1]\"]\n\t-4301889102193211785 [label=\"Abstraction.create\" id=1172452201210198631]\n\t-4301889102193211785 -> -4201411264265478741 [id=\"1172452201210198631.args[0]\"]\n\t-4201411264265478741 [label=\"Abstraction.create_variable\" id=-4201411264265478741]\n\t-4201411264265478741 -> 7380415972152618127 [id=\"-4201411264265478741.args[0]\"]\n\t7380415972152618127 [label=\"Variable(4706187528)\" id=7380415972152618127]\n\t-4301889102193211785 -> 4784451372487240553 [id=\"1172452201210198631.args[1]\"]\n\t4784451372487240553 [label=\"RegisteredFunctionThree.__call__\" id=-2798832603938002636]\n\t4784451372487240553 -> -9047616665901287451 [id=\"-2798832603938002636.args[0]\"]\n\t-9047616665901287451 [label=\"Pair.right\" id=331997323044025149]\n\t-9047616665901287451 -> 6421049583071104118 [id=\"331997323044025149.args[0]\"]\n\t6421049583071104118 [label=\"Module.register_function_three\" id=4899536719140060270]\n\t6421049583071104118 -> 9194082363204006239 [id=\"4899536719140060270.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t6421049583071104118 -> 6654312104302240340 [id=\"4899536719140060270.args[1]\"]\n\t6654312104302240340 [label=\"FunctionThree.create\" id=6666383149566541436]\n\t6654312104302240340 -> 2673734682725344796 [id=\"6666383149566541436.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t6654312104302240340 -> 8296590541316663666 [id=\"6666383149566541436.args[1]\"]\n\t8296590541316663666 [label=\"Abstraction.fix\" id=1679961851819582347]\n\t8296590541316663666 -> 6783442550308425521 [id=\"1679961851819582347.args[0]\"]\n\t6783442550308425521 [label=\"Abstraction.create\" id=-3204228431626515969]\n\t6783442550308425521 -> 6987256301798395682 [id=\"-3204228431626515969.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t6783442550308425521 -> -4818300998285447382 [id=\"-3204228431626515969.args[1]\"]\n\t-4818300998285447382 [label=\"Abstraction.create\" id=-1834925178008141342]\n\t-4818300998285447382 -> -2630333337664267462 [id=\"-1834925178008141342.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t-4818300998285447382 -> -6504227916040003133 [id=\"-1834925178008141342.args[1]\"]\n\t-6504227916040003133 [label=\"Abstraction.create\" id=6353655735887172170]\n\t-6504227916040003133 -> -83959885639906586 [id=\"6353655735887172170.args[0]\"]\n\t-83959885639906586 [label=\"Abstraction.create_variable\" id=-83959885639906586]\n\t-83959885639906586 -> -1842970633542277731 [id=\"-83959885639906586.args[0]\"]\n\t-1842970633542277731 [label=\"Variable(4525394912)\" id=-1842970633542277731]\n\t-6504227916040003133 -> 2698123946207273120 [id=\"6353655735887172170.args[1]\"]\n\t2698123946207273120 [label=\"Abstraction.from_fn\" id=2698123946207273120]\n\t2698123946207273120 -> -2936325706006774208 [id=\"2698123946207273120.args[0]\"]\n\t-2936325706006774208 [label=\"function FunctionThree.from_fn_recursive.locals.inner.locals.inner_inner.locals.inner_inner_inner.locals.inner_inner_inner_inner at 0x11887d400\" id=-2936325706006774208]\n\t4784451372487240553 -> -4201411264265478741 [id=\"-2798832603938002636.args[1]\"]\n\t4784451372487240553 -> -8062860982755750992 [id=\"-2798832603938002636.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t4784451372487240553 -> 8991566627588652371 [id=\"-2798832603938002636.args[3]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t-5959579613653664570 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-797134544341576669 [label=\"FunctionOne.__call__\" id=-7930995119366425672]\n\t-797134544341576669 -> -762579374646262444 [id=\"-7930995119366425672.args[0]\"]\n\t-762579374646262444 [label=\"FunctionOne.create\" id=-762579374646262444]\n\t-762579374646262444 -> 2464825165261485652 [id=\"-762579374646262444.args[0]\"]\n\t2464825165261485652 [label=\"'fib'\" id=2464825165261485652]\n\t-762579374646262444 -> 8594748029156308621 [id=\"-762579374646262444.args[1]\"]\n\t8594748029156308621 [label=\"Abstraction.create\" id=-8525262730167044086]\n\t8594748029156308621 -> -4201411264265478741 [id=\"-8525262730167044086.args[0]\"]\n\t-4201411264265478741 [label=\"Abstraction.create_variable\" id=-4201411264265478741]\n\t-4201411264265478741 -> 7380415972152618127 [id=\"-4201411264265478741.args[0]\"]\n\t7380415972152618127 [label=\"Variable(4706187528)\" id=7380415972152618127]\n\t8594748029156308621 -> 7724197279715717350 [id=\"-8525262730167044086.args[1]\"]\n\t7724197279715717350 [label=\"RegisteredFunctionThree.__call__\" id=7724197279715717350]\n\t7724197279715717350 -> -8475238085131152238 [id=\"7724197279715717350.args[0]\"]\n\t-8475238085131152238 [label=\"Pair.right\" id=-8475238085131152238]\n\t-8475238085131152238 -> -9032619582627668474 [id=\"-8475238085131152238.args[0]\"]\n\t-9032619582627668474 [label=\"Module.register_function_three\" id=-9032619582627668474]\n\t-9032619582627668474 -> 9194082363204006239 [id=\"-9032619582627668474.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t-9032619582627668474 -> 216991575121629990 [id=\"-9032619582627668474.args[1]\"]\n\t216991575121629990 [label=\"FunctionThree.create\" id=216991575121629990]\n\t216991575121629990 -> 2673734682725344796 [id=\"216991575121629990.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t216991575121629990 -> -7565138950805325298 [id=\"216991575121629990.args[1]\"]\n\t-7565138950805325298 [label=\"Abstraction.fix\" id=-7565138950805325298]\n\t-7565138950805325298 -> 3141279798455495910 [id=\"-7565138950805325298.args[0]\"]\n\t3141279798455495910 [label=\"Abstraction.create\" id=3141279798455495910]\n\t3141279798455495910 -> 6987256301798395682 [id=\"3141279798455495910.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t3141279798455495910 -> -2403671889061907422 [id=\"3141279798455495910.args[1]\"]\n\t-2403671889061907422 [label=\"Abstraction.create\" id=-2403671889061907422]\n\t-2403671889061907422 -> -2630333337664267462 [id=\"-2403671889061907422.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t-2403671889061907422 -> 6698008615730782711 [id=\"-2403671889061907422.args[1]\"]\n\t6698008615730782711 [label=\"Abstraction.create\" id=6698008615730782711]\n\t6698008615730782711 -> -83959885639906586 [id=\"6698008615730782711.args[0]\"]\n\t-83959885639906586 [label=\"Abstraction.create_variable\" id=-83959885639906586]\n\t-83959885639906586 -> -1842970633542277731 [id=\"-83959885639906586.args[0]\"]\n\t-1842970633542277731 [label=\"Variable(4525394912)\" id=-1842970633542277731]\n\t6698008615730782711 -> -4851746490968064321 [id=\"6698008615730782711.args[1]\"]\n\t-4851746490968064321 [label=\"Abstraction.create\" id=-4851746490968064321]\n\t-4851746490968064321 -> 2485022505487976956 [id=\"-4851746490968064321.args[0]\"]\n\t2485022505487976956 [label=\"Abstraction.create_variable\" id=2485022505487976956]\n\t2485022505487976956 -> -1842970636179308631 [id=\"2485022505487976956.args[0]\"]\n\t-1842970636179308631 [label=\"Variable(4525454112)\" id=-1842970636179308631]\n\t-4851746490968064321 -> -3010663954029102725 [id=\"-4851746490968064321.args[1]\"]\n\t-3010663954029102725 [label=\"Boolean.if_\" id=-3010663954029102725]\n\t-3010663954029102725 -> 5039176343654746996 [id=\"-3010663954029102725.args[0]\"]\n\t5039176343654746996 [label=\"Integer.__gt__\" id=5039176343654746996]\n\t5039176343654746996 -> -2630333337664267462 [id=\"5039176343654746996.args[0]\"]\n\t5039176343654746996 -> 8991566627588652371 [id=\"5039176343654746996.args[1]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t-3010663954029102725 -> -1678057234549661273 [id=\"-3010663954029102725.args[1]\"]\n\t-1678057234549661273 [label=\"FunctionThree.__call__\" id=-1678057234549661273]\n\t-1678057234549661273 -> -2533782795325787516 [id=\"-1678057234549661273.args[0]\"]\n\t-2533782795325787516 [label=\"FunctionThree.create\" id=-2533782795325787516]\n\t-2533782795325787516 -> 2673734682725344796 [id=\"-2533782795325787516.args[0]\"]\n\t-2533782795325787516 -> 6987256301798395682 [id=\"-2533782795325787516.args[1]\"]\n\t-1678057234549661273 -> -8829491234363156666 [id=\"-1678057234549661273.args[1]\"]\n\t-8829491234363156666 [label=\"Integer.__sub__\" id=-8829491234363156666]\n\t-8829491234363156666 -> -2630333337664267462 [id=\"-8829491234363156666.args[0]\"]\n\t-8829491234363156666 -> 8991566627588652371 [id=\"-8829491234363156666.args[1]\"]\n\t-1678057234549661273 -> 2485022505487976956 [id=\"-1678057234549661273.args[2]\"]\n\t-1678057234549661273 -> 8610094552342352291 [id=\"-1678057234549661273.args[3]\"]\n\t8610094552342352291 [label=\"Integer.__add__\" id=8610094552342352291]\n\t8610094552342352291 -> -83959885639906586 [id=\"8610094552342352291.args[0]\"]\n\t8610094552342352291 -> 2485022505487976956 [id=\"8610094552342352291.args[1]\"]\n\t-3010663954029102725 -> -3535433948775298598 [id=\"-3010663954029102725.args[2]\"]\n\t-3535433948775298598 [label=\"Boolean.if_\" id=-3535433948775298598]\n\t-3535433948775298598 -> -8103950655183150449 [id=\"-3535433948775298598.args[0]\"]\n\t-8103950655183150449 [label=\"Integer.eq\" id=-8103950655183150449]\n\t-8103950655183150449 -> -2630333337664267462 [id=\"-8103950655183150449.args[0]\"]\n\t-8103950655183150449 -> 8991566627588652371 [id=\"-8103950655183150449.args[1]\"]\n\t-3535433948775298598 -> 2485022505487976956 [id=\"-3535433948775298598.args[1]\"]\n\t-3535433948775298598 -> -83959885639906586 [id=\"-3535433948775298598.args[2]\"]\n\t7724197279715717350 -> -4201411264265478741 [id=\"7724197279715717350.args[1]\"]\n\t7724197279715717350 -> -8062860982755750992 [id=\"7724197279715717350.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t7724197279715717350 -> 8991566627588652371 [id=\"7724197279715717350.args[3]\"]\n\t-797134544341576669 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.Abstraction.from_fn"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t4936490607844492398 [label=\"Abstraction.__call__\" id=-7930995119366425672]\n\t4936490607844492398 -> -8525262730167044086 [id=\"-7930995119366425672.args[0]\"]\n\t-8525262730167044086 [label=\"FunctionOne.abstraction\" id=-8525262730167044086]\n\t-8525262730167044086 -> -762579374646262444 [id=\"-8525262730167044086.args[0]\"]\n\t-762579374646262444 [label=\"FunctionOne.create\" id=-762579374646262444]\n\t-762579374646262444 -> 2464825165261485652 [id=\"-762579374646262444.args[0]\"]\n\t2464825165261485652 [label=\"'fib'\" id=2464825165261485652]\n\t-762579374646262444 -> 8594748029156308621 [id=\"-762579374646262444.args[1]\"]\n\t8594748029156308621 [label=\"Abstraction.create\" id=-8525262730167044086]\n\t8594748029156308621 -> -4201411264265478741 [id=\"-8525262730167044086.args[0]\"]\n\t-4201411264265478741 [label=\"Abstraction.create_variable\" id=-4201411264265478741]\n\t-4201411264265478741 -> 7380415972152618127 [id=\"-4201411264265478741.args[0]\"]\n\t7380415972152618127 [label=\"Variable(4706187528)\" id=7380415972152618127]\n\t8594748029156308621 -> 7724197279715717350 [id=\"-8525262730167044086.args[1]\"]\n\t7724197279715717350 [label=\"RegisteredFunctionThree.__call__\" id=7724197279715717350]\n\t7724197279715717350 -> -8475238085131152238 [id=\"7724197279715717350.args[0]\"]\n\t-8475238085131152238 [label=\"Pair.right\" id=-8475238085131152238]\n\t-8475238085131152238 -> -9032619582627668474 [id=\"-8475238085131152238.args[0]\"]\n\t-9032619582627668474 [label=\"Module.register_function_three\" id=-9032619582627668474]\n\t-9032619582627668474 -> 9194082363204006239 [id=\"-9032619582627668474.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t-9032619582627668474 -> 216991575121629990 [id=\"-9032619582627668474.args[1]\"]\n\t216991575121629990 [label=\"FunctionThree.create\" id=216991575121629990]\n\t216991575121629990 -> 2673734682725344796 [id=\"216991575121629990.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t216991575121629990 -> -7565138950805325298 [id=\"216991575121629990.args[1]\"]\n\t-7565138950805325298 [label=\"Abstraction.fix\" id=-7565138950805325298]\n\t-7565138950805325298 -> 3141279798455495910 [id=\"-7565138950805325298.args[0]\"]\n\t3141279798455495910 [label=\"Abstraction.create\" id=3141279798455495910]\n\t3141279798455495910 -> 6987256301798395682 [id=\"3141279798455495910.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t3141279798455495910 -> -2403671889061907422 [id=\"3141279798455495910.args[1]\"]\n\t-2403671889061907422 [label=\"Abstraction.create\" id=-2403671889061907422]\n\t-2403671889061907422 -> -2630333337664267462 [id=\"-2403671889061907422.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t-2403671889061907422 -> 6698008615730782711 [id=\"-2403671889061907422.args[1]\"]\n\t6698008615730782711 [label=\"Abstraction.create\" id=6698008615730782711]\n\t6698008615730782711 -> -83959885639906586 [id=\"6698008615730782711.args[0]\"]\n\t-83959885639906586 [label=\"Abstraction.create_variable\" id=-83959885639906586]\n\t-83959885639906586 -> -1842970633542277731 [id=\"-83959885639906586.args[0]\"]\n\t-1842970633542277731 [label=\"Variable(4525394912)\" id=-1842970633542277731]\n\t6698008615730782711 -> -4851746490968064321 [id=\"6698008615730782711.args[1]\"]\n\t-4851746490968064321 [label=\"Abstraction.create\" id=-4851746490968064321]\n\t-4851746490968064321 -> 2485022505487976956 [id=\"-4851746490968064321.args[0]\"]\n\t2485022505487976956 [label=\"Abstraction.create_variable\" id=2485022505487976956]\n\t2485022505487976956 -> -1842970636179308631 [id=\"2485022505487976956.args[0]\"]\n\t-1842970636179308631 [label=\"Variable(4525454112)\" id=-1842970636179308631]\n\t-4851746490968064321 -> -3010663954029102725 [id=\"-4851746490968064321.args[1]\"]\n\t-3010663954029102725 [label=\"Boolean.if_\" id=-3010663954029102725]\n\t-3010663954029102725 -> 5039176343654746996 [id=\"-3010663954029102725.args[0]\"]\n\t5039176343654746996 [label=\"Integer.__gt__\" id=5039176343654746996]\n\t5039176343654746996 -> -2630333337664267462 [id=\"5039176343654746996.args[0]\"]\n\t5039176343654746996 -> 8991566627588652371 [id=\"5039176343654746996.args[1]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t-3010663954029102725 -> -1678057234549661273 [id=\"-3010663954029102725.args[1]\"]\n\t-1678057234549661273 [label=\"FunctionThree.__call__\" id=-1678057234549661273]\n\t-1678057234549661273 -> -2533782795325787516 [id=\"-1678057234549661273.args[0]\"]\n\t-2533782795325787516 [label=\"FunctionThree.create\" id=-2533782795325787516]\n\t-2533782795325787516 -> 2673734682725344796 [id=\"-2533782795325787516.args[0]\"]\n\t-2533782795325787516 -> 6987256301798395682 [id=\"-2533782795325787516.args[1]\"]\n\t-1678057234549661273 -> -8829491234363156666 [id=\"-1678057234549661273.args[1]\"]\n\t-8829491234363156666 [label=\"Integer.__sub__\" id=-8829491234363156666]\n\t-8829491234363156666 -> -2630333337664267462 [id=\"-8829491234363156666.args[0]\"]\n\t-8829491234363156666 -> 8991566627588652371 [id=\"-8829491234363156666.args[1]\"]\n\t-1678057234549661273 -> 2485022505487976956 [id=\"-1678057234549661273.args[2]\"]\n\t-1678057234549661273 -> 8610094552342352291 [id=\"-1678057234549661273.args[3]\"]\n\t8610094552342352291 [label=\"Integer.__add__\" id=8610094552342352291]\n\t8610094552342352291 -> -83959885639906586 [id=\"8610094552342352291.args[0]\"]\n\t8610094552342352291 -> 2485022505487976956 [id=\"8610094552342352291.args[1]\"]\n\t-3010663954029102725 -> -3535433948775298598 [id=\"-3010663954029102725.args[2]\"]\n\t-3535433948775298598 [label=\"Boolean.if_\" id=-3535433948775298598]\n\t-3535433948775298598 -> -8103950655183150449 [id=\"-3535433948775298598.args[0]\"]\n\t-8103950655183150449 [label=\"Integer.eq\" id=-8103950655183150449]\n\t-8103950655183150449 -> -2630333337664267462 [id=\"-8103950655183150449.args[0]\"]\n\t-8103950655183150449 -> 8991566627588652371 [id=\"-8103950655183150449.args[1]\"]\n\t-3535433948775298598 -> 2485022505487976956 [id=\"-3535433948775298598.args[1]\"]\n\t-3535433948775298598 -> -83959885639906586 [id=\"-3535433948775298598.args[2]\"]\n\t7724197279715717350 -> -4201411264265478741 [id=\"7724197279715717350.args[1]\"]\n\t7724197279715717350 -> -8062860982755750992 [id=\"7724197279715717350.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t7724197279715717350 -> 8991566627588652371 [id=\"7724197279715717350.args[3]\"]\n\t4936490607844492398 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.function.one_call"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-409661326369817115 [label=\"Abstraction.__call__\" id=-7930995119366425672]\n\t-409661326369817115 -> 8594748029156308621 [id=\"-7930995119366425672.args[0]\"]\n\t8594748029156308621 [label=\"Abstraction.create\" id=-8525262730167044086]\n\t8594748029156308621 -> -4201411264265478741 [id=\"-8525262730167044086.args[0]\"]\n\t-4201411264265478741 [label=\"Abstraction.create_variable\" id=-4201411264265478741]\n\t-4201411264265478741 -> 7380415972152618127 [id=\"-4201411264265478741.args[0]\"]\n\t7380415972152618127 [label=\"Variable(4706187528)\" id=7380415972152618127]\n\t8594748029156308621 -> 7724197279715717350 [id=\"-8525262730167044086.args[1]\"]\n\t7724197279715717350 [label=\"RegisteredFunctionThree.__call__\" id=7724197279715717350]\n\t7724197279715717350 -> -8475238085131152238 [id=\"7724197279715717350.args[0]\"]\n\t-8475238085131152238 [label=\"Pair.right\" id=-8475238085131152238]\n\t-8475238085131152238 -> -9032619582627668474 [id=\"-8475238085131152238.args[0]\"]\n\t-9032619582627668474 [label=\"Module.register_function_three\" id=-9032619582627668474]\n\t-9032619582627668474 -> 9194082363204006239 [id=\"-9032619582627668474.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t-9032619582627668474 -> 216991575121629990 [id=\"-9032619582627668474.args[1]\"]\n\t216991575121629990 [label=\"FunctionThree.create\" id=216991575121629990]\n\t216991575121629990 -> 2673734682725344796 [id=\"216991575121629990.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t216991575121629990 -> -7565138950805325298 [id=\"216991575121629990.args[1]\"]\n\t-7565138950805325298 [label=\"Abstraction.fix\" id=-7565138950805325298]\n\t-7565138950805325298 -> 3141279798455495910 [id=\"-7565138950805325298.args[0]\"]\n\t3141279798455495910 [label=\"Abstraction.create\" id=3141279798455495910]\n\t3141279798455495910 -> 6987256301798395682 [id=\"3141279798455495910.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t3141279798455495910 -> -2403671889061907422 [id=\"3141279798455495910.args[1]\"]\n\t-2403671889061907422 [label=\"Abstraction.create\" id=-2403671889061907422]\n\t-2403671889061907422 -> -2630333337664267462 [id=\"-2403671889061907422.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t-2403671889061907422 -> 6698008615730782711 [id=\"-2403671889061907422.args[1]\"]\n\t6698008615730782711 [label=\"Abstraction.create\" id=6698008615730782711]\n\t6698008615730782711 -> -83959885639906586 [id=\"6698008615730782711.args[0]\"]\n\t-83959885639906586 [label=\"Abstraction.create_variable\" id=-83959885639906586]\n\t-83959885639906586 -> -1842970633542277731 [id=\"-83959885639906586.args[0]\"]\n\t-1842970633542277731 [label=\"Variable(4525394912)\" id=-1842970633542277731]\n\t6698008615730782711 -> -4851746490968064321 [id=\"6698008615730782711.args[1]\"]\n\t-4851746490968064321 [label=\"Abstraction.create\" id=-4851746490968064321]\n\t-4851746490968064321 -> 2485022505487976956 [id=\"-4851746490968064321.args[0]\"]\n\t2485022505487976956 [label=\"Abstraction.create_variable\" id=2485022505487976956]\n\t2485022505487976956 -> -1842970636179308631 [id=\"2485022505487976956.args[0]\"]\n\t-1842970636179308631 [label=\"Variable(4525454112)\" id=-1842970636179308631]\n\t-4851746490968064321 -> -3010663954029102725 [id=\"-4851746490968064321.args[1]\"]\n\t-3010663954029102725 [label=\"Boolean.if_\" id=-3010663954029102725]\n\t-3010663954029102725 -> 5039176343654746996 [id=\"-3010663954029102725.args[0]\"]\n\t5039176343654746996 [label=\"Integer.__gt__\" id=5039176343654746996]\n\t5039176343654746996 -> -2630333337664267462 [id=\"5039176343654746996.args[0]\"]\n\t5039176343654746996 -> 8991566627588652371 [id=\"5039176343654746996.args[1]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t-3010663954029102725 -> -1678057234549661273 [id=\"-3010663954029102725.args[1]\"]\n\t-1678057234549661273 [label=\"FunctionThree.__call__\" id=-1678057234549661273]\n\t-1678057234549661273 -> -2533782795325787516 [id=\"-1678057234549661273.args[0]\"]\n\t-2533782795325787516 [label=\"FunctionThree.create\" id=-2533782795325787516]\n\t-2533782795325787516 -> 2673734682725344796 [id=\"-2533782795325787516.args[0]\"]\n\t-2533782795325787516 -> 6987256301798395682 [id=\"-2533782795325787516.args[1]\"]\n\t-1678057234549661273 -> -8829491234363156666 [id=\"-1678057234549661273.args[1]\"]\n\t-8829491234363156666 [label=\"Integer.__sub__\" id=-8829491234363156666]\n\t-8829491234363156666 -> -2630333337664267462 [id=\"-8829491234363156666.args[0]\"]\n\t-8829491234363156666 -> 8991566627588652371 [id=\"-8829491234363156666.args[1]\"]\n\t-1678057234549661273 -> 2485022505487976956 [id=\"-1678057234549661273.args[2]\"]\n\t-1678057234549661273 -> 8610094552342352291 [id=\"-1678057234549661273.args[3]\"]\n\t8610094552342352291 [label=\"Integer.__add__\" id=8610094552342352291]\n\t8610094552342352291 -> -83959885639906586 [id=\"8610094552342352291.args[0]\"]\n\t8610094552342352291 -> 2485022505487976956 [id=\"8610094552342352291.args[1]\"]\n\t-3010663954029102725 -> -3535433948775298598 [id=\"-3010663954029102725.args[2]\"]\n\t-3535433948775298598 [label=\"Boolean.if_\" id=-3535433948775298598]\n\t-3535433948775298598 -> -8103950655183150449 [id=\"-3535433948775298598.args[0]\"]\n\t-8103950655183150449 [label=\"Integer.eq\" id=-8103950655183150449]\n\t-8103950655183150449 -> -2630333337664267462 [id=\"-8103950655183150449.args[0]\"]\n\t-8103950655183150449 -> 8991566627588652371 [id=\"-8103950655183150449.args[1]\"]\n\t-3535433948775298598 -> 2485022505487976956 [id=\"-3535433948775298598.args[1]\"]\n\t-3535433948775298598 -> -83959885639906586 [id=\"-3535433948775298598.args[2]\"]\n\t7724197279715717350 -> -4201411264265478741 [id=\"7724197279715717350.args[1]\"]\n\t7724197279715717350 -> -8062860982755750992 [id=\"7724197279715717350.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t7724197279715717350 -> 8991566627588652371 [id=\"7724197279715717350.args[3]\"]\n\t-409661326369817115 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n}",
         "label": null,
         "rule": "metadsl_core.function.one_abstraction"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-5931879195317611386 [label=\"RegisteredFunctionThree.__call__\" id=-7930995119366425672]\n\t-5931879195317611386 -> -8475238085131152238 [id=\"-7930995119366425672.args[0]\"]\n\t-8475238085131152238 [label=\"Pair.right\" id=-8475238085131152238]\n\t-8475238085131152238 -> -9032619582627668474 [id=\"-8475238085131152238.args[0]\"]\n\t-9032619582627668474 [label=\"Module.register_function_three\" id=-9032619582627668474]\n\t-9032619582627668474 -> 9194082363204006239 [id=\"-9032619582627668474.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t-9032619582627668474 -> 216991575121629990 [id=\"-9032619582627668474.args[1]\"]\n\t216991575121629990 [label=\"FunctionThree.create\" id=216991575121629990]\n\t216991575121629990 -> 2673734682725344796 [id=\"216991575121629990.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t216991575121629990 -> -7565138950805325298 [id=\"216991575121629990.args[1]\"]\n\t-7565138950805325298 [label=\"Abstraction.fix\" id=-7565138950805325298]\n\t-7565138950805325298 -> 3141279798455495910 [id=\"-7565138950805325298.args[0]\"]\n\t3141279798455495910 [label=\"Abstraction.create\" id=3141279798455495910]\n\t3141279798455495910 -> 6987256301798395682 [id=\"3141279798455495910.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t3141279798455495910 -> -2403671889061907422 [id=\"3141279798455495910.args[1]\"]\n\t-2403671889061907422 [label=\"Abstraction.create\" id=-2403671889061907422]\n\t-2403671889061907422 -> -2630333337664267462 [id=\"-2403671889061907422.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t-2403671889061907422 -> 6698008615730782711 [id=\"-2403671889061907422.args[1]\"]\n\t6698008615730782711 [label=\"Abstraction.create\" id=6698008615730782711]\n\t6698008615730782711 -> -83959885639906586 [id=\"6698008615730782711.args[0]\"]\n\t-83959885639906586 [label=\"Abstraction.create_variable\" id=-83959885639906586]\n\t-83959885639906586 -> -1842970633542277731 [id=\"-83959885639906586.args[0]\"]\n\t-1842970633542277731 [label=\"Variable(4525394912)\" id=-1842970633542277731]\n\t6698008615730782711 -> -4851746490968064321 [id=\"6698008615730782711.args[1]\"]\n\t-4851746490968064321 [label=\"Abstraction.create\" id=-4851746490968064321]\n\t-4851746490968064321 -> 2485022505487976956 [id=\"-4851746490968064321.args[0]\"]\n\t2485022505487976956 [label=\"Abstraction.create_variable\" id=2485022505487976956]\n\t2485022505487976956 -> -1842970636179308631 [id=\"2485022505487976956.args[0]\"]\n\t-1842970636179308631 [label=\"Variable(4525454112)\" id=-1842970636179308631]\n\t-4851746490968064321 -> -3010663954029102725 [id=\"-4851746490968064321.args[1]\"]\n\t-3010663954029102725 [label=\"Boolean.if_\" id=-3010663954029102725]\n\t-3010663954029102725 -> 5039176343654746996 [id=\"-3010663954029102725.args[0]\"]\n\t5039176343654746996 [label=\"Integer.__gt__\" id=5039176343654746996]\n\t5039176343654746996 -> -2630333337664267462 [id=\"5039176343654746996.args[0]\"]\n\t5039176343654746996 -> 8991566627588652371 [id=\"5039176343654746996.args[1]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t-3010663954029102725 -> -1678057234549661273 [id=\"-3010663954029102725.args[1]\"]\n\t-1678057234549661273 [label=\"FunctionThree.__call__\" id=-1678057234549661273]\n\t-1678057234549661273 -> -2533782795325787516 [id=\"-1678057234549661273.args[0]\"]\n\t-2533782795325787516 [label=\"FunctionThree.create\" id=-2533782795325787516]\n\t-2533782795325787516 -> 2673734682725344796 [id=\"-2533782795325787516.args[0]\"]\n\t-2533782795325787516 -> 6987256301798395682 [id=\"-2533782795325787516.args[1]\"]\n\t-1678057234549661273 -> -8829491234363156666 [id=\"-1678057234549661273.args[1]\"]\n\t-8829491234363156666 [label=\"Integer.__sub__\" id=-8829491234363156666]\n\t-8829491234363156666 -> -2630333337664267462 [id=\"-8829491234363156666.args[0]\"]\n\t-8829491234363156666 -> 8991566627588652371 [id=\"-8829491234363156666.args[1]\"]\n\t-1678057234549661273 -> 2485022505487976956 [id=\"-1678057234549661273.args[2]\"]\n\t-1678057234549661273 -> 8610094552342352291 [id=\"-1678057234549661273.args[3]\"]\n\t8610094552342352291 [label=\"Integer.__add__\" id=8610094552342352291]\n\t8610094552342352291 -> -83959885639906586 [id=\"8610094552342352291.args[0]\"]\n\t8610094552342352291 -> 2485022505487976956 [id=\"8610094552342352291.args[1]\"]\n\t-3010663954029102725 -> -3535433948775298598 [id=\"-3010663954029102725.args[2]\"]\n\t-3535433948775298598 [label=\"Boolean.if_\" id=-3535433948775298598]\n\t-3535433948775298598 -> -8103950655183150449 [id=\"-3535433948775298598.args[0]\"]\n\t-8103950655183150449 [label=\"Integer.eq\" id=-8103950655183150449]\n\t-8103950655183150449 -> -2630333337664267462 [id=\"-8103950655183150449.args[0]\"]\n\t-8103950655183150449 -> 8991566627588652371 [id=\"-8103950655183150449.args[1]\"]\n\t-3535433948775298598 -> 2485022505487976956 [id=\"-3535433948775298598.args[1]\"]\n\t-3535433948775298598 -> -83959885639906586 [id=\"-3535433948775298598.args[2]\"]\n\t-5931879195317611386 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n\t-5931879195317611386 -> -8062860982755750992 [id=\"-7930995119366425672.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t-5931879195317611386 -> 8991566627588652371 [id=\"-7930995119366425672.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.abstraction.beta_reduce"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t6324436717735744683 [label=\"RegisteredFunctionThree.__call__\" id=-7930995119366425672]\n\t6324436717735744683 -> -9215743353267092809 [id=\"-7930995119366425672.args[0]\"]\n\t-9215743353267092809 [label=\"Pair.right\" id=-8475238085131152238]\n\t-9215743353267092809 -> 1744651705977060466 [id=\"-8475238085131152238.args[0]\"]\n\t1744651705977060466 [label=\"Module.register_function_three\" id=-9032619582627668474]\n\t1744651705977060466 -> 9194082363204006239 [id=\"-9032619582627668474.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t1744651705977060466 -> 4701699662903140968 [id=\"-9032619582627668474.args[1]\"]\n\t4701699662903140968 [label=\"FunctionThree.create\" id=216991575121629990]\n\t4701699662903140968 -> 2673734682725344796 [id=\"216991575121629990.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t4701699662903140968 -> -8246903710647587428 [id=\"216991575121629990.args[1]\"]\n\t-8246903710647587428 [label=\"Abstraction.fix\" id=-7565138950805325298]\n\t-8246903710647587428 -> -4480309806015563314 [id=\"-7565138950805325298.args[0]\"]\n\t-4480309806015563314 [label=\"Abstraction.create\" id=3141279798455495910]\n\t-4480309806015563314 -> 6987256301798395682 [id=\"3141279798455495910.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t-4480309806015563314 -> 3898798555001460600 [id=\"3141279798455495910.args[1]\"]\n\t3898798555001460600 [label=\"Abstraction.create\" id=-2403671889061907422]\n\t3898798555001460600 -> -2630333337664267462 [id=\"-2403671889061907422.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t3898798555001460600 -> 4497406104319796142 [id=\"-2403671889061907422.args[1]\"]\n\t4497406104319796142 [label=\"Abstraction.create\" id=6698008615730782711]\n\t4497406104319796142 -> -83959885639906586 [id=\"6698008615730782711.args[0]\"]\n\t-83959885639906586 [label=\"Abstraction.create_variable\" id=-83959885639906586]\n\t-83959885639906586 -> -1842970633542277731 [id=\"-83959885639906586.args[0]\"]\n\t-1842970633542277731 [label=\"Variable(4525394912)\" id=-1842970633542277731]\n\t4497406104319796142 -> -4522893253874214441 [id=\"6698008615730782711.args[1]\"]\n\t-4522893253874214441 [label=\"Abstraction.create\" id=-4851746490968064321]\n\t-4522893253874214441 -> 2485022505487976956 [id=\"-4851746490968064321.args[0]\"]\n\t2485022505487976956 [label=\"Abstraction.create_variable\" id=2485022505487976956]\n\t2485022505487976956 -> -1842970636179308631 [id=\"2485022505487976956.args[0]\"]\n\t-1842970636179308631 [label=\"Variable(4525454112)\" id=-1842970636179308631]\n\t-4522893253874214441 -> -4204396640721988429 [id=\"-4851746490968064321.args[1]\"]\n\t-4204396640721988429 [label=\"Boolean.if_\" id=-3010663954029102725]\n\t-4204396640721988429 -> 5039176343654746996 [id=\"-3010663954029102725.args[0]\"]\n\t5039176343654746996 [label=\"Integer.__gt__\" id=5039176343654746996]\n\t5039176343654746996 -> -2630333337664267462 [id=\"5039176343654746996.args[0]\"]\n\t5039176343654746996 -> 8991566627588652371 [id=\"5039176343654746996.args[1]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t-4204396640721988429 -> 2622755402051324158 [id=\"-3010663954029102725.args[1]\"]\n\t2622755402051324158 [label=\"Abstraction.__call__\" id=-1678057234549661273]\n\t2622755402051324158 -> 9086350412372606544 [id=\"-1678057234549661273.args[0]\"]\n\t9086350412372606544 [label=\"Abstraction.__call__\" id=9086350412372606544]\n\t9086350412372606544 -> 2258623479388985830 [id=\"9086350412372606544.args[0]\"]\n\t2258623479388985830 [label=\"Abstraction.__call__\" id=2258623479388985830]\n\t2258623479388985830 -> -5364263143082931094 [id=\"2258623479388985830.args[0]\"]\n\t-5364263143082931094 [label=\"FunctionThree.abstraction\" id=-5364263143082931094]\n\t-5364263143082931094 -> -2533782795325787516 [id=\"-5364263143082931094.args[0]\"]\n\t-2533782795325787516 [label=\"FunctionThree.create\" id=-2533782795325787516]\n\t-2533782795325787516 -> 2673734682725344796 [id=\"-2533782795325787516.args[0]\"]\n\t-2533782795325787516 -> 6987256301798395682 [id=\"-2533782795325787516.args[1]\"]\n\t2258623479388985830 -> -8829491234363156666 [id=\"2258623479388985830.args[1]\"]\n\t-8829491234363156666 [label=\"Integer.__sub__\" id=-8829491234363156666]\n\t-8829491234363156666 -> -2630333337664267462 [id=\"-8829491234363156666.args[0]\"]\n\t-8829491234363156666 -> 8991566627588652371 [id=\"-8829491234363156666.args[1]\"]\n\t9086350412372606544 -> 2485022505487976956 [id=\"9086350412372606544.args[1]\"]\n\t2622755402051324158 -> 8610094552342352291 [id=\"-1678057234549661273.args[1]\"]\n\t8610094552342352291 [label=\"Integer.__add__\" id=8610094552342352291]\n\t8610094552342352291 -> -83959885639906586 [id=\"8610094552342352291.args[0]\"]\n\t8610094552342352291 -> 2485022505487976956 [id=\"8610094552342352291.args[1]\"]\n\t-4204396640721988429 -> -3535433948775298598 [id=\"-3010663954029102725.args[2]\"]\n\t-3535433948775298598 [label=\"Boolean.if_\" id=-3535433948775298598]\n\t-3535433948775298598 -> -8103950655183150449 [id=\"-3535433948775298598.args[0]\"]\n\t-8103950655183150449 [label=\"Integer.eq\" id=-8103950655183150449]\n\t-8103950655183150449 -> -2630333337664267462 [id=\"-8103950655183150449.args[0]\"]\n\t-8103950655183150449 -> 8991566627588652371 [id=\"-8103950655183150449.args[1]\"]\n\t-3535433948775298598 -> 2485022505487976956 [id=\"-3535433948775298598.args[1]\"]\n\t-3535433948775298598 -> -83959885639906586 [id=\"-3535433948775298598.args[2]\"]\n\t6324436717735744683 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n\t6324436717735744683 -> -8062860982755750992 [id=\"-7930995119366425672.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t6324436717735744683 -> 8991566627588652371 [id=\"-7930995119366425672.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.function.three_call"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-8461624146447902958 [label=\"RegisteredFunctionThree.__call__\" id=-7930995119366425672]\n\t-8461624146447902958 -> -1991243927830375693 [id=\"-7930995119366425672.args[0]\"]\n\t-1991243927830375693 [label=\"Pair.right\" id=-8475238085131152238]\n\t-1991243927830375693 -> 9033152268747220883 [id=\"-8475238085131152238.args[0]\"]\n\t9033152268747220883 [label=\"Module.register_function_three\" id=-9032619582627668474]\n\t9033152268747220883 -> 9194082363204006239 [id=\"-9032619582627668474.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t9033152268747220883 -> -2300311849643639191 [id=\"-9032619582627668474.args[1]\"]\n\t-2300311849643639191 [label=\"FunctionThree.create\" id=216991575121629990]\n\t-2300311849643639191 -> 2673734682725344796 [id=\"216991575121629990.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t-2300311849643639191 -> 7134475887744218515 [id=\"216991575121629990.args[1]\"]\n\t7134475887744218515 [label=\"Abstraction.fix\" id=-7565138950805325298]\n\t7134475887744218515 -> 8801742192859552643 [id=\"-7565138950805325298.args[0]\"]\n\t8801742192859552643 [label=\"Abstraction.create\" id=3141279798455495910]\n\t8801742192859552643 -> 6987256301798395682 [id=\"3141279798455495910.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t8801742192859552643 -> -7031183907197251467 [id=\"3141279798455495910.args[1]\"]\n\t-7031183907197251467 [label=\"Abstraction.create\" id=-2403671889061907422]\n\t-7031183907197251467 -> -2630333337664267462 [id=\"-2403671889061907422.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t-7031183907197251467 -> -7381302850267290421 [id=\"-2403671889061907422.args[1]\"]\n\t-7381302850267290421 [label=\"Abstraction.create\" id=6698008615730782711]\n\t-7381302850267290421 -> -83959885639906586 [id=\"6698008615730782711.args[0]\"]\n\t-83959885639906586 [label=\"Abstraction.create_variable\" id=-83959885639906586]\n\t-83959885639906586 -> -1842970633542277731 [id=\"-83959885639906586.args[0]\"]\n\t-1842970633542277731 [label=\"Variable(4525394912)\" id=-1842970633542277731]\n\t-7381302850267290421 -> 6432869366879058503 [id=\"6698008615730782711.args[1]\"]\n\t6432869366879058503 [label=\"Abstraction.create\" id=-4851746490968064321]\n\t6432869366879058503 -> 2485022505487976956 [id=\"-4851746490968064321.args[0]\"]\n\t2485022505487976956 [label=\"Abstraction.create_variable\" id=2485022505487976956]\n\t2485022505487976956 -> -1842970636179308631 [id=\"2485022505487976956.args[0]\"]\n\t-1842970636179308631 [label=\"Variable(4525454112)\" id=-1842970636179308631]\n\t6432869366879058503 -> 6379008523199503104 [id=\"-4851746490968064321.args[1]\"]\n\t6379008523199503104 [label=\"Boolean.if_\" id=-3010663954029102725]\n\t6379008523199503104 -> 5039176343654746996 [id=\"-3010663954029102725.args[0]\"]\n\t5039176343654746996 [label=\"Integer.__gt__\" id=5039176343654746996]\n\t5039176343654746996 -> -2630333337664267462 [id=\"5039176343654746996.args[0]\"]\n\t5039176343654746996 -> 8991566627588652371 [id=\"5039176343654746996.args[1]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t6379008523199503104 -> 7370479135019701401 [id=\"-3010663954029102725.args[1]\"]\n\t7370479135019701401 [label=\"Abstraction.__call__\" id=-1678057234549661273]\n\t7370479135019701401 -> -3033993469913752895 [id=\"-1678057234549661273.args[0]\"]\n\t-3033993469913752895 [label=\"Abstraction.__call__\" id=9086350412372606544]\n\t-3033993469913752895 -> -210743540934503925 [id=\"9086350412372606544.args[0]\"]\n\t-210743540934503925 [label=\"Abstraction.__call__\" id=2258623479388985830]\n\t-210743540934503925 -> 6987256301798395682 [id=\"2258623479388985830.args[0]\"]\n\t-210743540934503925 -> -8829491234363156666 [id=\"2258623479388985830.args[1]\"]\n\t-8829491234363156666 [label=\"Integer.__sub__\" id=-8829491234363156666]\n\t-8829491234363156666 -> -2630333337664267462 [id=\"-8829491234363156666.args[0]\"]\n\t-8829491234363156666 -> 8991566627588652371 [id=\"-8829491234363156666.args[1]\"]\n\t-3033993469913752895 -> 2485022505487976956 [id=\"9086350412372606544.args[1]\"]\n\t7370479135019701401 -> 8610094552342352291 [id=\"-1678057234549661273.args[1]\"]\n\t8610094552342352291 [label=\"Integer.__add__\" id=8610094552342352291]\n\t8610094552342352291 -> -83959885639906586 [id=\"8610094552342352291.args[0]\"]\n\t8610094552342352291 -> 2485022505487976956 [id=\"8610094552342352291.args[1]\"]\n\t6379008523199503104 -> -3535433948775298598 [id=\"-3010663954029102725.args[2]\"]\n\t-3535433948775298598 [label=\"Boolean.if_\" id=-3535433948775298598]\n\t-3535433948775298598 -> -8103950655183150449 [id=\"-3535433948775298598.args[0]\"]\n\t-8103950655183150449 [label=\"Integer.eq\" id=-8103950655183150449]\n\t-8103950655183150449 -> -2630333337664267462 [id=\"-8103950655183150449.args[0]\"]\n\t-8103950655183150449 -> 8991566627588652371 [id=\"-8103950655183150449.args[1]\"]\n\t-3535433948775298598 -> 2485022505487976956 [id=\"-3535433948775298598.args[1]\"]\n\t-3535433948775298598 -> -83959885639906586 [id=\"-3535433948775298598.args[2]\"]\n\t-8461624146447902958 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n\t-8461624146447902958 -> -8062860982755750992 [id=\"-7930995119366425672.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t-8461624146447902958 -> 8991566627588652371 [id=\"-7930995119366425672.args[3]\"]\n}",
         "label": null,
         "rule": "metadsl_core.function.three_abstraction"
        },
        {
         "graph": "digraph {\n\tnode [shape=plain]\n\tedge [arrowsize=0.5 penwidth=0.5]\n\t-8461624146447902958 [label=\"RegisteredFunctionThree.__call__\" id=-7930995119366425672]\n\t-8461624146447902958 -> -1991243927830375693 [id=\"-7930995119366425672.args[0]\"]\n\t-1991243927830375693 [label=\"Pair.right\" id=-8475238085131152238]\n\t-1991243927830375693 -> 9033152268747220883 [id=\"-8475238085131152238.args[0]\"]\n\t9033152268747220883 [label=\"Module.register_function_three\" id=-9032619582627668474]\n\t9033152268747220883 -> 9194082363204006239 [id=\"-9032619582627668474.args[0]\"]\n\t9194082363204006239 [label=\"Module.create\" id=9194082363204006239]\n\t9194082363204006239 -> 7964024461393131612 [id=\"9194082363204006239.args[0]\"]\n\t7964024461393131612 [label=\"'Main'\" id=7964024461393131612]\n\t9033152268747220883 -> -2300311849643639191 [id=\"-9032619582627668474.args[1]\"]\n\t-2300311849643639191 [label=\"FunctionThree.create\" id=216991575121629990]\n\t-2300311849643639191 -> 2673734682725344796 [id=\"216991575121629990.args[0]\"]\n\t2673734682725344796 [label=\"'fib_more'\" id=2673734682725344796]\n\t-2300311849643639191 -> 7134475887744218515 [id=\"216991575121629990.args[1]\"]\n\t7134475887744218515 [label=\"Abstraction.fix\" id=-7565138950805325298]\n\t7134475887744218515 -> 8801742192859552643 [id=\"-7565138950805325298.args[0]\"]\n\t8801742192859552643 [label=\"Abstraction.create\" id=3141279798455495910]\n\t8801742192859552643 -> 6987256301798395682 [id=\"3141279798455495910.args[0]\"]\n\t6987256301798395682 [label=\"Abstraction.create_variable\" id=6987256301798395682]\n\t6987256301798395682 -> -1842970648362044981 [id=\"6987256301798395682.args[0]\"]\n\t-1842970648362044981 [label=\"Variable(4525371968)\" id=-1842970648362044981]\n\t8801742192859552643 -> -7031183907197251467 [id=\"3141279798455495910.args[1]\"]\n\t-7031183907197251467 [label=\"Abstraction.create\" id=-2403671889061907422]\n\t-7031183907197251467 -> -2630333337664267462 [id=\"-2403671889061907422.args[0]\"]\n\t-2630333337664267462 [label=\"Abstraction.create_variable\" id=-2630333337664267462]\n\t-2630333337664267462 -> 7380415924466309352 [id=\"-2630333337664267462.args[0]\"]\n\t7380415924466309352 [label=\"Variable(4706630232)\" id=7380415924466309352]\n\t-7031183907197251467 -> -7381302850267290421 [id=\"-2403671889061907422.args[1]\"]\n\t-7381302850267290421 [label=\"Abstraction.create\" id=6698008615730782711]\n\t-7381302850267290421 -> -83959885639906586 [id=\"6698008615730782711.args[0]\"]\n\t-83959885639906586 [label=\"Abstraction.create_variable\" id=-83959885639906586]\n\t-83959885639906586 -> -1842970633542277731 [id=\"-83959885639906586.args[0]\"]\n\t-1842970633542277731 [label=\"Variable(4525394912)\" id=-1842970633542277731]\n\t-7381302850267290421 -> 6432869366879058503 [id=\"6698008615730782711.args[1]\"]\n\t6432869366879058503 [label=\"Abstraction.create\" id=-4851746490968064321]\n\t6432869366879058503 -> 2485022505487976956 [id=\"-4851746490968064321.args[0]\"]\n\t2485022505487976956 [label=\"Abstraction.create_variable\" id=2485022505487976956]\n\t2485022505487976956 -> -1842970636179308631 [id=\"2485022505487976956.args[0]\"]\n\t-1842970636179308631 [label=\"Variable(4525454112)\" id=-1842970636179308631]\n\t6432869366879058503 -> 6379008523199503104 [id=\"-4851746490968064321.args[1]\"]\n\t6379008523199503104 [label=\"Boolean.if_\" id=-3010663954029102725]\n\t6379008523199503104 -> 5039176343654746996 [id=\"-3010663954029102725.args[0]\"]\n\t5039176343654746996 [label=\"Integer.__gt__\" id=5039176343654746996]\n\t5039176343654746996 -> -2630333337664267462 [id=\"5039176343654746996.args[0]\"]\n\t5039176343654746996 -> 8991566627588652371 [id=\"5039176343654746996.args[1]\"]\n\t8991566627588652371 [label=\"Integer.from_int\" id=8991566627588652371]\n\t8991566627588652371 -> 6290633000949956400 [id=\"8991566627588652371.args[0]\"]\n\t6290633000949956400 [label=1 id=6290633000949956400]\n\t6379008523199503104 -> 7370479135019701401 [id=\"-3010663954029102725.args[1]\"]\n\t7370479135019701401 [label=\"Abstraction.__call__\" id=-1678057234549661273]\n\t7370479135019701401 -> -3033993469913752895 [id=\"-1678057234549661273.args[0]\"]\n\t-3033993469913752895 [label=\"Abstraction.__call__\" id=9086350412372606544]\n\t-3033993469913752895 -> -210743540934503925 [id=\"9086350412372606544.args[0]\"]\n\t-210743540934503925 [label=\"Abstraction.__call__\" id=2258623479388985830]\n\t-210743540934503925 -> 6987256301798395682 [id=\"2258623479388985830.args[0]\"]\n\t-210743540934503925 -> -8829491234363156666 [id=\"2258623479388985830.args[1]\"]\n\t-8829491234363156666 [label=\"Integer.__sub__\" id=-8829491234363156666]\n\t-8829491234363156666 -> -2630333337664267462 [id=\"-8829491234363156666.args[0]\"]\n\t-8829491234363156666 -> 8991566627588652371 [id=\"-8829491234363156666.args[1]\"]\n\t-3033993469913752895 -> 2485022505487976956 [id=\"9086350412372606544.args[1]\"]\n\t7370479135019701401 -> 8610094552342352291 [id=\"-1678057234549661273.args[1]\"]\n\t8610094552342352291 [label=\"Integer.__add__\" id=8610094552342352291]\n\t8610094552342352291 -> -83959885639906586 [id=\"8610094552342352291.args[0]\"]\n\t8610094552342352291 -> 2485022505487976956 [id=\"8610094552342352291.args[1]\"]\n\t6379008523199503104 -> -3535433948775298598 [id=\"-3010663954029102725.args[2]\"]\n\t-3535433948775298598 [label=\"Boolean.if_\" id=-3535433948775298598]\n\t-3535433948775298598 -> -8103950655183150449 [id=\"-3535433948775298598.args[0]\"]\n\t-8103950655183150449 [label=\"Integer.eq\" id=-8103950655183150449]\n\t-8103950655183150449 -> -2630333337664267462 [id=\"-8103950655183150449.args[0]\"]\n\t-8103950655183150449 -> 8991566627588652371 [id=\"-8103950655183150449.args[1]\"]\n\t-3535433948775298598 -> 2485022505487976956 [id=\"-3535433948775298598.args[1]\"]\n\t-3535433948775298598 -> -83959885639906586 [id=\"-3535433948775298598.args[2]\"]\n\t-8461624146447902958 -> 281689739684471306 [id=\"-7930995119366425672.args[1]\"]\n\t281689739684471306 [label=\"Integer.from_int\" id=281689739684471306]\n\t281689739684471306 -> 6290633000942378725 [id=\"281689739684471306.args[0]\"]\n\t6290633000942378725 [label=10 id=6290633000942378725]\n\t-8461624146447902958 -> -8062860982755750992 [id=\"-7930995119366425672.args[2]\"]\n\t-8062860982755750992 [label=\"Integer.from_int\" id=-8062860982755750992]\n\t-8062860982755750992 -> 6290633000948873875 [id=\"-8062860982755750992.args[0]\"]\n\t6290633000948873875 [label=0 id=6290633000948873875]\n\t-8461624146447902958 -> 8991566627588652371 [id=\"-7930995119366425672.args[3]\"]\n}",
         "label": "core",
         "rule": ""
        }
       ]
      },
      "text/plain": [
       "Typez(definitions=None, nodes={'6287046351788365200': ['6287046351788365200', PrimitiveNode(type='function', repr='<function fib at 0x118821d08>')], '-1025188181259960821': ['-1025188181259960821', CallNode(function='FunctionOne.from_fn', type_params=None, args=['6287046351788365200'], kwargs=None)], '6290633000942378725': ['6290633000942378725', PrimitiveNode(type='int', repr='10')], '281689739684471306': ['281689739684471306', CallNode(function='Integer.from_int', type_params=None, args=['6290633000942378725'], kwargs=None)], '-7930995119366425672': ['-7930995119366425672', CallNode(function='FunctionOne.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1025188181259960821', '281689739684471306'], kwargs=None)], '2464825165261485652': ['2464825165261485652', PrimitiveNode(type='str', repr=\"'fib'\")], '6287046354319308650': ['6287046354319308650', PrimitiveNode(type='function', repr='<function fib at 0x118828f28>')], '1172452201210198631': ['1172452201210198631', CallNode(function='Abstraction.from_fn', type_params=None, args=['6287046354319308650'], kwargs=None)], '-3707657341861473831': ['-1025188181259960821', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2464825165261485652', '1172452201210198631'], kwargs=None)], '779868771537704119': ['-7930995119366425672', CallNode(function='FunctionOne.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3707657341861473831', '281689739684471306'], kwargs=None)], '7380415972152618127': ['7380415972152618127', PrimitiveNode(type='Variable', repr='Variable(4706187528)')], '-4201411264265478741': ['-4201411264265478741', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['7380415972152618127'], kwargs=None)], '7964024461393131612': ['7964024461393131612', PrimitiveNode(type='str', repr=\"'Main'\")], '9194082363204006239': ['9194082363204006239', CallNode(function='Module.create', type_params=None, args=['7964024461393131612'], kwargs=None)], '-2936325743345226508': ['-2936325743345226508', PrimitiveNode(type='function', repr='<function fib_more at 0x1188f3840>')], '6666383149566541436': ['6666383149566541436', CallNode(function='FunctionThree.from_fn_recursive', type_params=None, args=['-2936325743345226508'], kwargs=None)], '4899536719140060270': ['4899536719140060270', CallNode(function='Module.register_function_three', type_params=None, args=['9194082363204006239', '6666383149566541436'], kwargs=None)], '331997323044025149': ['331997323044025149', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['4899536719140060270'], kwargs=None)], '6290633000948873875': ['6290633000948873875', PrimitiveNode(type='int', repr='0')], '-8062860982755750992': ['-8062860982755750992', CallNode(function='Integer.from_int', type_params=None, args=['6290633000948873875'], kwargs=None)], '6290633000949956400': ['6290633000949956400', PrimitiveNode(type='int', repr='1')], '8991566627588652371': ['8991566627588652371', CallNode(function='Integer.from_int', type_params=None, args=['6290633000949956400'], kwargs=None)], '-2798832603938002636': ['-2798832603938002636', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['331997323044025149', '-4201411264265478741', '-8062860982755750992', '8991566627588652371'], kwargs=None)], '5071658115449224495': ['1172452201210198631', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-4201411264265478741', '-2798832603938002636'], kwargs=None)], '8506521199140663867': ['-1025188181259960821', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2464825165261485652', '5071658115449224495'], kwargs=None)], '5191098963953740705': ['-7930995119366425672', CallNode(function='FunctionOne.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['8506521199140663867', '281689739684471306'], kwargs=None)], '2673734682725344796': ['2673734682725344796', PrimitiveNode(type='str', repr=\"'fib_more'\")], '6287046293741209650': ['6287046293741209650', PrimitiveNode(type='function', repr='<function FunctionThree.from_fn_recursive.<locals>.inner at 0x1188f36a8>')], '-3204228431626515969': ['-3204228431626515969', CallNode(function='Abstraction.from_fn', type_params=None, args=['6287046293741209650'], kwargs=None)], '1679961851819582347': ['1679961851819582347', CallNode(function='Abstraction.fix', type_params=None, args=['-3204228431626515969'], kwargs=None)], '5994086350276621990': ['6666383149566541436', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2673734682725344796', '1679961851819582347'], kwargs=None)], '6625000848682397916': ['4899536719140060270', CallNode(function='Module.register_function_three', type_params=None, args=['9194082363204006239', '5994086350276621990'], kwargs=None)], '-911672752600669477': ['331997323044025149', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['6625000848682397916'], kwargs=None)], '6029729004902272602': ['-2798832603938002636', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-911672752600669477', '-4201411264265478741', '-8062860982755750992', '8991566627588652371'], kwargs=None)], '-1435157371679626906': ['1172452201210198631', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-4201411264265478741', '6029729004902272602'], kwargs=None)], '7730467945412319762': ['-1025188181259960821', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2464825165261485652', '-1435157371679626906'], kwargs=None)], '-2762336936409586090': ['-7930995119366425672', CallNode(function='FunctionOne.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['7730467945412319762', '281689739684471306'], kwargs=None)], '-1842970648362044981': ['-1842970648362044981', PrimitiveNode(type='Variable', repr='Variable(4525371968)')], '6987256301798395682': ['6987256301798395682', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['-1842970648362044981'], kwargs=None)], '-2936325706060900458': ['-2936325706060900458', PrimitiveNode(type='function', repr='<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x11887d1e0>')], '-1834925178008141342': ['-1834925178008141342', CallNode(function='Abstraction.from_fn', type_params=None, args=['-2936325706060900458'], kwargs=None)], '4315049639738486451': ['-3204228431626515969', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['6987256301798395682', '-1834925178008141342'], kwargs=None)], '-8660868569897678951': ['1679961851819582347', CallNode(function='Abstraction.fix', type_params=None, args=['4315049639738486451'], kwargs=None)], '-5381247678846279575': ['6666383149566541436', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2673734682725344796', '-8660868569897678951'], kwargs=None)], '-1366092147290172723': ['4899536719140060270', CallNode(function='Module.register_function_three', type_params=None, args=['9194082363204006239', '-5381247678846279575'], kwargs=None)], '-1130754155919476052': ['331997323044025149', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-1366092147290172723'], kwargs=None)], '2641203150099392547': ['-2798832603938002636', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1130754155919476052', '-4201411264265478741', '-8062860982755750992', '8991566627588652371'], kwargs=None)], '-4119107354117605282': ['1172452201210198631', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-4201411264265478741', '2641203150099392547'], kwargs=None)], '6086865145829675927': ['-1025188181259960821', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2464825165261485652', '-4119107354117605282'], kwargs=None)], '4150578307060337322': ['-7930995119366425672', CallNode(function='FunctionOne.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['6086865145829675927', '281689739684471306'], kwargs=None)], '7380415924466309352': ['7380415924466309352', PrimitiveNode(type='Variable', repr='Variable(4706630232)')], '-2630333337664267462': ['-2630333337664267462', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['7380415924466309352'], kwargs=None)], '-2936325706173483058': ['-2936325706173483058', PrimitiveNode(type='function', repr='<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x11887da60>')], '6353655735887172170': ['6353655735887172170', CallNode(function='Abstraction.from_fn', type_params=None, args=['-2936325706173483058'], kwargs=None)], '-8652459915148536727': ['-1834925178008141342', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2630333337664267462', '6353655735887172170'], kwargs=None)], '2780308607730068815': ['-3204228431626515969', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['6987256301798395682', '-8652459915148536727'], kwargs=None)], '-1847867787378846835': ['1679961851819582347', CallNode(function='Abstraction.fix', type_params=None, args=['2780308607730068815'], kwargs=None)], '6891077840190785164': ['6666383149566541436', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2673734682725344796', '-1847867787378846835'], kwargs=None)], '-2608198648929359042': ['4899536719140060270', CallNode(function='Module.register_function_three', type_params=None, args=['9194082363204006239', '6891077840190785164'], kwargs=None)], '2024082147828518108': ['331997323044025149', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-2608198648929359042'], kwargs=None)], '4987316013230589075': ['-2798832603938002636', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2024082147828518108', '-4201411264265478741', '-8062860982755750992', '8991566627588652371'], kwargs=None)], '-7903349236455192199': ['1172452201210198631', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-4201411264265478741', '4987316013230589075'], kwargs=None)], '650796385760501378': ['-1025188181259960821', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2464825165261485652', '-7903349236455192199'], kwargs=None)], '6614696116057853973': ['-7930995119366425672', CallNode(function='FunctionOne.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['650796385760501378', '281689739684471306'], kwargs=None)], '-1842970633542277731': ['-1842970633542277731', PrimitiveNode(type='Variable', repr='Variable(4525394912)')], '-83959885639906586': ['-83959885639906586', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1842970633542277731'], kwargs=None)], '-2936325706006774208': ['-2936325706006774208', PrimitiveNode(type='function', repr='<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x11887d400>')], '2698123946207273120': ['2698123946207273120', CallNode(function='Abstraction.from_fn', type_params=None, args=['-2936325706006774208'], kwargs=None)], '-6504227916040003133': ['6353655735887172170', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-83959885639906586', '2698123946207273120'], kwargs=None)], '-4818300998285447382': ['-1834925178008141342', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2630333337664267462', '-6504227916040003133'], kwargs=None)], '6783442550308425521': ['-3204228431626515969', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['6987256301798395682', '-4818300998285447382'], kwargs=None)], '8296590541316663666': ['1679961851819582347', CallNode(function='Abstraction.fix', type_params=None, args=['6783442550308425521'], kwargs=None)], '6654312104302240340': ['6666383149566541436', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2673734682725344796', '8296590541316663666'], kwargs=None)], '6421049583071104118': ['4899536719140060270', CallNode(function='Module.register_function_three', type_params=None, args=['9194082363204006239', '6654312104302240340'], kwargs=None)], '-9047616665901287451': ['331997323044025149', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['6421049583071104118'], kwargs=None)], '4784451372487240553': ['-2798832603938002636', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-9047616665901287451', '-4201411264265478741', '-8062860982755750992', '8991566627588652371'], kwargs=None)], '-4301889102193211785': ['1172452201210198631', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-4201411264265478741', '4784451372487240553'], kwargs=None)], '8372384807668618114': ['-1025188181259960821', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2464825165261485652', '-4301889102193211785'], kwargs=None)], '-5959579613653664570': ['-7930995119366425672', CallNode(function='FunctionOne.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['8372384807668618114', '281689739684471306'], kwargs=None)], '-1842970636179308631': ['-1842970636179308631', PrimitiveNode(type='Variable', repr='Variable(4525454112)')], '2485022505487976956': ['2485022505487976956', CallNode(function='Abstraction.create_variable', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1842970636179308631'], kwargs=None)], '5039176343654746996': ['5039176343654746996', CallNode(function='Integer.__gt__', type_params=None, args=['-2630333337664267462', '8991566627588652371'], kwargs=None)], '-2533782795325787516': ['-2533782795325787516', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2673734682725344796', '6987256301798395682'], kwargs=None)], '-8829491234363156666': ['-8829491234363156666', CallNode(function='Integer.__sub__', type_params=None, args=['-2630333337664267462', '8991566627588652371'], kwargs=None)], '8610094552342352291': ['8610094552342352291', CallNode(function='Integer.__add__', type_params=None, args=['-83959885639906586', '2485022505487976956'], kwargs=None)], '-1678057234549661273': ['-1678057234549661273', CallNode(function='FunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2533782795325787516', '-8829491234363156666', '2485022505487976956', '8610094552342352291'], kwargs=None)], '-8103950655183150449': ['-8103950655183150449', CallNode(function='Integer.eq', type_params=None, args=['-2630333337664267462', '8991566627588652371'], kwargs=None)], '-3535433948775298598': ['-3535433948775298598', CallNode(function='Boolean.if_', type_params=None, args=['-8103950655183150449', '2485022505487976956', '-83959885639906586'], kwargs=None)], '-3010663954029102725': ['-3010663954029102725', CallNode(function='Boolean.if_', type_params=None, args=['5039176343654746996', '-1678057234549661273', '-3535433948775298598'], kwargs=None)], '-4851746490968064321': ['-4851746490968064321', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2485022505487976956', '-3010663954029102725'], kwargs=None)], '6698008615730782711': ['6698008615730782711', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-83959885639906586', '-4851746490968064321'], kwargs=None)], '-2403671889061907422': ['-2403671889061907422', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2630333337664267462', '6698008615730782711'], kwargs=None)], '3141279798455495910': ['3141279798455495910', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['6987256301798395682', '-2403671889061907422'], kwargs=None)], '-7565138950805325298': ['-7565138950805325298', CallNode(function='Abstraction.fix', type_params=None, args=['3141279798455495910'], kwargs=None)], '216991575121629990': ['216991575121629990', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2673734682725344796', '-7565138950805325298'], kwargs=None)], '-9032619582627668474': ['-9032619582627668474', CallNode(function='Module.register_function_three', type_params=None, args=['9194082363204006239', '216991575121629990'], kwargs=None)], '-8475238085131152238': ['-8475238085131152238', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['-9032619582627668474'], kwargs=None)], '7724197279715717350': ['7724197279715717350', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-8475238085131152238', '-4201411264265478741', '-8062860982755750992', '8991566627588652371'], kwargs=None)], '8594748029156308621': ['-8525262730167044086', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-4201411264265478741', '7724197279715717350'], kwargs=None)], '-762579374646262444': ['-762579374646262444', CallNode(function='FunctionOne.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2464825165261485652', '8594748029156308621'], kwargs=None)], '-797134544341576669': ['-7930995119366425672', CallNode(function='FunctionOne.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-762579374646262444', '281689739684471306'], kwargs=None)], '-8525262730167044086': ['-8525262730167044086', CallNode(function='FunctionOne.abstraction', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-762579374646262444'], kwargs=None)], '4936490607844492398': ['-7930995119366425672', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-8525262730167044086', '281689739684471306'], kwargs=None)], '-409661326369817115': ['-7930995119366425672', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['8594748029156308621', '281689739684471306'], kwargs=None)], '-5931879195317611386': ['-7930995119366425672', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-8475238085131152238', '281689739684471306', '-8062860982755750992', '8991566627588652371'], kwargs=None)], '-5364263143082931094': ['-5364263143082931094', CallNode(function='FunctionThree.abstraction', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2533782795325787516'], kwargs=None)], '2258623479388985830': ['2258623479388985830', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-5364263143082931094', '-8829491234363156666'], kwargs=None)], '9086350412372606544': ['9086350412372606544', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2258623479388985830', '2485022505487976956'], kwargs=None)], '2622755402051324158': ['-1678057234549661273', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['9086350412372606544', '8610094552342352291'], kwargs=None)], '-4204396640721988429': ['-3010663954029102725', CallNode(function='Boolean.if_', type_params=None, args=['5039176343654746996', '2622755402051324158', '-3535433948775298598'], kwargs=None)], '-4522893253874214441': ['-4851746490968064321', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2485022505487976956', '-4204396640721988429'], kwargs=None)], '4497406104319796142': ['6698008615730782711', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-83959885639906586', '-4522893253874214441'], kwargs=None)], '3898798555001460600': ['-2403671889061907422', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2630333337664267462', '4497406104319796142'], kwargs=None)], '-4480309806015563314': ['3141279798455495910', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['6987256301798395682', '3898798555001460600'], kwargs=None)], '-8246903710647587428': ['-7565138950805325298', CallNode(function='Abstraction.fix', type_params=None, args=['-4480309806015563314'], kwargs=None)], '4701699662903140968': ['216991575121629990', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2673734682725344796', '-8246903710647587428'], kwargs=None)], '1744651705977060466': ['-9032619582627668474', CallNode(function='Module.register_function_three', type_params=None, args=['9194082363204006239', '4701699662903140968'], kwargs=None)], '-9215743353267092809': ['-8475238085131152238', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['1744651705977060466'], kwargs=None)], '6324436717735744683': ['-7930995119366425672', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-9215743353267092809', '281689739684471306', '-8062860982755750992', '8991566627588652371'], kwargs=None)], '-210743540934503925': ['2258623479388985830', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['6987256301798395682', '-8829491234363156666'], kwargs=None)], '-3033993469913752895': ['9086350412372606544', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-210743540934503925', '2485022505487976956'], kwargs=None)], '7370479135019701401': ['-1678057234549661273', CallNode(function='Abstraction.__call__', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-3033993469913752895', '8610094552342352291'], kwargs=None)], '6379008523199503104': ['-3010663954029102725', CallNode(function='Boolean.if_', type_params=None, args=['5039176343654746996', '7370479135019701401', '-3535433948775298598'], kwargs=None)], '6432869366879058503': ['-4851746490968064321', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2485022505487976956', '6379008523199503104'], kwargs=None)], '-7381302850267290421': ['6698008615730782711', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-83959885639906586', '6432869366879058503'], kwargs=None)], '-7031183907197251467': ['-2403671889061907422', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-2630333337664267462', '-7381302850267290421'], kwargs=None)], '8801742192859552643': ['3141279798455495910', CallNode(function='Abstraction.create', type_params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Abstraction', params={'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Integer', params=None)})}, args=['6987256301798395682', '-7031183907197251467'], kwargs=None)], '7134475887744218515': ['-7565138950805325298', CallNode(function='Abstraction.fix', type_params=None, args=['8801742192859552643'], kwargs=None)], '-2300311849643639191': ['216991575121629990', CallNode(function='FunctionThree.create', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['2673734682725344796', '7134475887744218515'], kwargs=None)], '9033152268747220883': ['-9032619582627668474', CallNode(function='Module.register_function_three', type_params=None, args=['9194082363204006239', '-2300311849643639191'], kwargs=None)], '-1991243927830375693': ['-8475238085131152238', CallNode(function='Pair.right', type_params={'U': DeclaredTypeInstance(type='RegisteredFunctionThree', params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}), 'T': DeclaredTypeInstance(type='Module', params=None)}, args=['9033152268747220883'], kwargs=None)], '-8461624146447902958': ['-7930995119366425672', CallNode(function='RegisteredFunctionThree.__call__', type_params={'X': DeclaredTypeInstance(type='Integer', params=None), 'V': DeclaredTypeInstance(type='Integer', params=None), 'U': DeclaredTypeInstance(type='Integer', params=None), 'T': DeclaredTypeInstance(type='Integer', params=None)}, args=['-1991243927830375693', '281689739684471306', '-8062860982755750992', '8991566627588652371'], kwargs=None)]}, states=States(initial='-7930995119366425672', states=[State(node='779868771537704119', rule='metadsl_core.function.FunctionOne.from_fn', label=None), State(node='5191098963953740705', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='-2762336936409586090', rule='metadsl_core.function.FunctionThree.from_fn_recursive', label=None), State(node='4150578307060337322', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='6614696116057853973', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='-5959579613653664570', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='-797134544341576669', rule='metadsl_core.abstraction.Abstraction.from_fn', label=None), State(node='4936490607844492398', rule='metadsl_core.function.one_call', label=None), State(node='-409661326369817115', rule='metadsl_core.function.one_abstraction', label=None), State(node='-5931879195317611386', rule='metadsl_core.abstraction.beta_reduce', label=None), State(node='6324436717735744683', rule='metadsl_core.function.three_call', label=None), State(node='-8461624146447902958', rule='metadsl_core.function.three_abstraction', label=None), State(node='-8461624146447902958', rule='', label='core')]))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<function fib at 0x118821d08> {~T: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>} <function fib at 0x118828f28>\n",
      "<function fib_more at 0x10db4fbf8> {~T: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>} <function fib_more at 0x1188f3bf8>\n",
      "<function fib_more at 0x1188f3bf8> {~T: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>} <function fib_more at 0x1188f3840>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner at 0x118821ae8> {~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>} <function FunctionThree.from_fn_recursive.<locals>.inner at 0x1188f36a8>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x118821b70> {~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x10dbb8730>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x10dbb8730> {~T: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]]], ~U: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]]]} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner at 0x11887d1e0>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x10db9cb70> {~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x10dbb8b70>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x10dbb8b70> {~T: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]]], ~U: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]]]} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x11887d598>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x11887d598> {~T: <class 'metadsl_core.integer.Integer'>, ~U: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]]} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner at 0x11887da60>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x10db9cd90> {~V: <class 'metadsl_core.integer.Integer'>, ~U: <class 'metadsl_core.integer.Integer'>, ~T: <class 'metadsl_core.integer.Integer'>, ~X: <class 'metadsl_core.integer.Integer'>} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x10dbb8e18>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x10dbb8e18> {~T: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]]], ~U: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]]]} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x11887d950>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x11887d950> {~T: <class 'metadsl_core.integer.Integer'>, ~U: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]]} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x11887d840>\n",
      "<function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x11887d840> {~T: <class 'metadsl_core.integer.Integer'>, ~U: metadsl_core.abstraction.Abstraction[metadsl_core.integer.Integer, metadsl_core.integer.Integer]} <function FunctionThree.from_fn_recursive.<locals>.inner.<locals>.inner_inner.<locals>.inner_inner_inner.<locals>.inner_inner_inner_inner at 0x11887d400>\n"
     ]
    }
   ],
   "source": [
    "fib(Integer.from_int(10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
